共有されたモデルの重要性
問題を解決する前に、問題を正しく理解することが重要である。
そのためには、ドメインエキスパートと開発チーム、その他のステークホルダー、そしてソースコードがすべて同一のモデルを共有することが重要である。 これにより、ドメインエキスパートのメンタルモデルをコードへ翻訳するのでなく、直接反映されるように これが DDD の最終目標
https://scrapbox.io/files/6577f4427f7caf00232cbb45.png
このように、ソフトウェアモデルをビジネスドメインと整合することは、以下のようなメリットがある。
市場投入までの時間削減
エンジニアとコードが、ドメインエキスパートと同じモデルを共有していることで、適切な解決手段を迅速に開発できる
より多くのビジネス価値の創出
問題に的確に沿ったソリューションは、顧客満足度を高める
無駄を減らす
要件が明確になり、誤解や手戻りに費やす無駄な時間を減らせる
どのコンポーネントの価値が高いかが明確になる
これにより、開発コストをそのコンポーネントに集中させるなどの戦略を取りやすい
メンテナンスの進化が容易
ドメインエキスパート自身のモデルとコードで表現されたモデルが一致することで、コードへの変更が容易になり、エラーの発生も少なくなる
また、新しいメンバは早く慣れることができる
したがって、最初に共有モデルを作る必要がある。
DDD のコミュニティでは、役立つガイドラインを開発している。
データ構造よりも、ビジネスイベントやワークフローに焦点を当てる