ひがやすを技術ブログ

電通国際情報サービスのプログラマ

ドメインモデルに対する日米の温度差

ドメインモデルに対する日米の温度差

ひさびさにみたなぁ、この話題と思いつつ、コメントします。
昔書いた自分の記事をすべて読み返したわけではありませんが、どこにもトランザクションスクリプトが良いと書いたことはないはず。
この話題に関する問題の根源は、ファウラーが


トランザクションスクリプトは、単純だから単純なシステムには向いている。でも、複雑な問題を扱うには、真のオブジェクト指向であるドメインモデルを使ったほうが良い。
としたところにあると思います。これが、そもそもおかしい。複雑なシステムを扱うには、ドメインモデルのほうが向いているというのは根拠がない。データと振る舞いを一つにまとめることがオブジェクト指向というのも単純すぎる。
別にオブジェクト指向はこうあるべきなんていまさら議論するつもりはありませんが、私の中でのオブジェクト指向は、「それぞれのオブジェクトがきちんと割り当てられた責任を果たしていること」です。
だから、トランザクションスクリプト VS ドメインモデルなんてものは、どうでも良いことで、いかに責任をクラスとして抽出するかが重要なポイントでしょう。
責任というのは、分析・設計レベルでは、「ユースケース」として表現されているのではないかと思います。だとすれば、ユースケースをクラスとして抽出すればよいのではないでしょうか。
もう少し、実装よりの説明は、
http://d.hatena.ne.jp/higayasuo/20070606#1181106858
http://d.hatena.ne.jp/higayasuo/20070608#1181298613に書いてます。
ここで書いているようなPageクラスは、トランザクションスクリプトでもドメインモデルでもないでしょう。分類することにあまり意味はないということです。
わざわざ書いたのは、「日本人が海外で認められているような技術が使いこなせない、理解できないから、単純な技術しか使えないんだ」的なニュアンスが感じられたから。別に日本も海外も関係なく、問題はできるだけシンプルに解決できればそれでよいのです。古い常識にとらわれる必要はありません。