TL;DR

  • 開発者の仕事はソフトウェアを通じて問題を解決することであり、コーディングはその一側面にすぎない。優れた設計やコミュニケーションは、コーディング以上に重要である。
  • ドメイン駆動設計(DDD)は、エンジニア以外のチームと協力して作るビジネスソフトウェアに特に有効である。

内容

設計とコミュニケーションの重要性

ソフトウェア開発を、要件というインプットと最終成果物というアウトプットを持つパイプラインと捉えると、garbage in, garbage out のルールが当てはまる。要件が不明確だったり設計が悪かったりすれば、いくらコーディングしても良いアウトプットは生まれない。

DDD が向いているソフトウェア

DDD はすべてのソフトウェア開発に適しているわけではない。たとえば、ゲームやシステムソフトウェアは別のアプローチで作れる。一方、エンジニア以外のチームと協力しなければならないビジネスソフトウェアやエンタープライズソフトウェアには特に有効である。本書はこの種のソフトウェアに焦点を当てている。

この章の構成

章の前半では、共有されたモデルの重要性を説明する。後半では、共有されたモデルを作るためのガイドラインを順に扱う。

キーワード