DDD / The Smart UI Anti-Pattern


Smart UI "アンチパターン"(p76)

要約

SmartUIでは、

ビジネスロジックをUIの中に配置し、その中にはビジネスルールなども埋め込まれている。 リレーショナルデータベースは共有リポジトリ上のデータの用に利用される。RADツールが利用できる。

アドバンテージ

  • 単純なアプリケーションでは、生産性が高く、早く作ることができる。
  • 熟練度の浅い開発者でも、ちょっとのトレーニングでこの方法をとることができる。
  • 不備のある要求分析でさえ、プロトタイプをリリースすること、要求に対して即座に変更することで打ち勝つことができる。
  • アプリケーションは分離されているので、小さなモジュールごとに納品が可能。システムの拡張に対しても、単純な振る舞いを追加するぐらいなら簡単にできる。
  • リレーショナルデータベースが利用でき、データレベルの統合も可能。
  • 4GLツールが使える
  • アプリケーションがリリースされた後は、メンテナンスプログラマは、変更の影響は局所化されているから、よく理解できないところでもすばやく作り直すことができる。

ディスアドバンテージ

  • データベースを除いた部分のアプリケーションの統合が難しい。
  • 振る舞いの再利用やビジネス課題の抽象化はできない。ビジネスルールは複数のオペレーション上に重複して現れる。
  • 抽象化が不十分であることで、リファクタリングに制限がかかり、ラピッドプロトタイピングや反復を実施するときには、自然と制限がかかってしまう。
  • リッチな振る舞いをつけることができない。(よくわからん)

担当者のつぶやき

DDDというコンテキストではアンチパターンってことかな。

アドバンテージとかは全訳みたいになりそう。 ディスアドバンテージの最後がよくわからない。

Smart UIとLAYERED ARCHITECTUREの中間にFowlerのTRANSACTION SCRIPTが位置するらしい。

みんなの突っ込み

  • Disadvantageの最後の項目は、複雑さに埋もれてしまうので、シンプルな振る舞いを付加していくような形でしかシステムを成長させられなくなってしまう、ということではないかなぁ、と。 -- 渡邉? 2008-09-18 (木) 12:42:38

まとめ (議事録)