TL;DR

  • 問題を解決する前に、問題を正しく理解することが重要である。
  • ドメインエキスパート、開発チーム、その他のステークホルダー、ソースコードがすべて同じモデルを共有し、ドメインエキスパートのメンタルモデルを翻訳せずにコードへ直接反映させる。これが DDD の最終目標である。

内容

共有モデルのメリット

ソフトウェアのモデルをビジネスのドメインと一致させると、次のメリットがある。

まず、市場に出すまでの時間を短くできる。エンジニアとコードがドメインエキスパートと同じモデルを共有しているので、適切な解決手段をすばやく開発できる。

次に、より多くのビジネス価値を生み出せる。問題に的確に沿った解決手段は、顧客満足度を高める。

さらに、無駄を減らせる。要件が明確になるので、誤解や手戻りに費やす時間が減る。どのコンポーネントの価値が高いかも明確になり、開発コストをそのコンポーネントに集中させるといった戦略を取りやすくなる。

最後に、保守と進化が容易になる。ドメインエキスパートのモデルとコードで表現したモデルが一致していれば、コードを変更しやすく、エラーも起きにくい。新しいメンバーも早く慣れることができる。

共有モデルを作るガイドライン

したがって、最初に共有モデルを作る必要がある。DDD のコミュニティは、そのためのガイドラインを開発している。

キーワード