ドメインモデルという言葉を避ける

個人的にドメインモデルという言葉を利用しはじめたのはFowlerがWeb上で発表した直後である。
ドメインロジックをどのように組織化するかという観点で指針を説明する際にこの言葉は非常に便利であった記憶がある。

当初は言葉もあまり知られていなくふーんという感じで聞いてもらえていたのですが、最近はドメインモデル自体がある程度広まって変に過剰に反応される傾向があるのに少し閉口している。このため、最近はドメインモデルという言葉を逆に避けてドメインロジックやビジネスロジックという言葉使ってごまかしている。


あと、このBLOGを読んでいとドメインモデル万歳的に見えるかもしれないが、実際には、ドメインロジックの実装としては、別にドメインモデル以外のトランザクションスクリプトでもテーブルモジュールでもなんでも構わないと思っている。テーブルモジュールを利用したいチームに無理やりドメインモデルを押し付けたりは絶対にしない。ビジネスロジックが非常に複雑な部分についてはドメインモデルの利用を検討することを勧める程度である。それよりも、消費税計算や単位付数量のような非常に広範囲に利用される汎用オブジェクトを作成(またはサブルーチン化)して利用すること強く勧める。これは広範囲に利用されかつ複雑な振る舞いをするドメインロジックの作成や導入を失敗すると大きなインパクトがあるためである。