エリック・エヴァンスのドメイン駆動設計 (IT Architects’Archive ソフトウェア開発の実践)

エリック・エヴァンスのドメイン駆動設計 (IT Architects’Archive ソフトウェア開発の実践)

エリック・エヴァンスのドメイン駆動設計 (IT Architects’Archive ソフトウェア開発の実践)

目次

第1部 ドメインモデルを機能させる(知識をかみ砕くコミュニケーションと言語の使い方 ほか)
第2部 モデル駆動設計の構成要素(ドメインを隔離するソフトウェアで表現されたモデル ほか)
第3部 より深い洞察へ向かうリファクタリング(ブレイクスルー暗黙的な概念を明示的にする ほか)
第4部 戦略的設計(モデルの整合性を維持する蒸留 ほか)

先進的なソフトウェア設計者は、少なくともここ20年の間、ドメインモデルと設計が重要なテーマであると認識してきた。しかし、何をする必要があって、それをどのようにすべきかについては、驚くほどわずかしか書かれていない。だが、明確に体系化されていないものの、オブジェクトコミュニティの底流として、ある哲学が出現してきている。私はその哲学を、ドメイン駆動設計と呼んでいる。

ソフトウェア開発が複雑なのは技術ではなく、ドメインそのもの、ユーザの活動、ビジネスだとして、そこを体系的に考えるというのはありそうでなかったし、あまり自分は知らなかったし、個人の経験に依存しがちだ、おそらく日本は特にそうかもしれない。本書では、設計のプラクティスやテクニック、原則について紹介している。

ほにゃら開発、◯◯手法、むにゅむにゃ指向など、ソフトウェア開発に従事する人なら誰しも開発手法、設計プロセス、モデリング技術などを耳にするたびに、それに対して淡い期待と将来への期待感から、幸せな開発を夢見て、そしてなぜか打ち砕かれます。その失敗した原因を考えると、ドメインについての理解が不足していることが多いです。
ソフトウェア開発は、渋い苦味に溢れたお仕事の1つだと思います。なぜなら、人月の神話で、ソフトウェア開発には、銀の弾丸がないというような例えからも、ソフトウェア開発において、圧倒的に有利な開発手法というものは、聞いたことはありません。正解のない世界に耐える力が必要だと思います。
人と人が仕事をして、お互いを疲弊させないためにも、知性と忍耐が必要であるし、優れたドメインモデルを創造し続けることが、人と人でしかできない作業であり、そこには成功と失敗を繰り返しながらよりよいソフトウェアデザインを模索し続けなければならないのだと思います。