IT / エンジニア / 設計


IT / エンジニア / 設計
  • Double checked locking
  • Application facade
    • http://capsctrl.que.jp/kdmsnr/diary/20040422.html MVCとかBCEとか3層構造とか、お前ら、もちっとちゃんとせえよ。 単語が乱立すると例外なくよく分からなくなるので、takaiさんの図を元に、作ってみた。 Service Layer = Use Case = Controllerというのは覚えておいて損はないだろう。
    • で。層間には超えられない壁があって、それらを取り持つもの(Application Facade, DAO)が存在する。 ドメインのモデリングの段階では、DAO以降は考慮しない。ユースケース以前も考慮しない(この図ではpresentation layerは省略した)。 これで一連のFowlerタンのコメントを読むと、なぜドメインドメイン口うるさいのか、だんだん分かってくるような気がする。
  • Struts Validatorプラグイン
    • ところで、このValidatorプラグインがサーバサイドとクライアントサイドの両方の検証に対応し ていることに、疑問を持たれた方もいるかもしれません。サーバサイドとクライアントサイドでま ったく同様の機能を実装するのは、一見無駄のようにも見えます。しかし、それでは、いずれ か片方の機能をのみ有効にしておけばよいのでしょうか?
    • 答えは、否です。というのも、クライアントサイドの検証機能は、クライアントブラウザが JavaScript?に対応していない、またはJavaScript?を無効にしている状態の場合、必ずしも動作 するとは限らないからです。確実性という意味で、最終的なデータのチェックは、サーバサイド で行う必要があります。ただ、サーバサイドでのみ検証チェックを行えばよいかというと、それ も違います。データ検証のために、いつもクライアントとサーバ間にトラフィックが発生するの は、パフォーマンス上好ましいことではないからです。チェックできるものは、極力クライアント 側で行ってしまった方が、パフォーマンス的にも、サーバ負荷の軽減という意味でも、より有 効でしょう。
    • そういう意味では、StrutsのValidatorプラグインは、いずれか一方への実装でさえ煩雑であ った入力データのチェックを、設定ファイルだけでクライアントとサーバの両方に簡単に実装で きるようにした点で、極めて画期的なものであるといえます。これで、開発者は、本当に重要 なビジネスロジックの構築に集中することができるというわけです。