ドメイン駆動設計の理解・学習促進におすすめな書籍6選

ソフトウェア品質

2003年に書籍『Domain-driven-design』においてEric Evans氏が提唱したソフトウェア開発手法の1つであるドメイン駆動設計(以降DDD)。
その概念自体の広がりは見せる一方で、WEB上には勉強会資料などがさまざまな人のさまざまな解釈で公開されており、DDDの理解に向けてはどこから学習すれば良いのか少々ハードルが高い印象を持っている方も多いのではないでしょうか。
そこで今回は”これから学習する人向け”、”より知識を深めたい人向け”の2軸でおすすめの書籍について触れていきます。

これから学習を始める方向けにおすすめ

ユースケース駆動開発実践ガイド

2007年の古い本ではあるものの、DDDを実践していくためのオブジェクト指向分析設計を導入するプロセスが実践的に解説されている本書。
今現在では利用しないような内容の記載もありますが、参考にできるものは非常に多くあります。
実装パターンではなくて、実践していくためのプロセスを習得したい方向けにおすすめです。

Doug Rosenberg著 『ユースケース駆動開発実践ガイド』(Amazon)

ドメイン駆動設計 サンプルコード&FAQ

DDDの基本やよくある疑問を、非常に分かりやすい言葉で解説しています。
サンプルコードも豊富かつコンパクトなので、大事なポイントをスモールステップで着実に学べるのが魅力です。

松岡 幸一郎著 『ドメイン駆動設計 サンプルコード&FAQ』(BOOTH)

良いコード/悪いコードで学ぶ設計入門 ―保守しやすい 成長し続けるコードの書き方

本書で解説しているクラス設計やモデリングは、実はDDDが背景にあります。また、随所でDDDの考え方を紹介しています。
初心者向けに分かりやすい言葉で解説しているため、エヴァンス本が理解しやすくなるでしょう。

仙塲 大也著 『良いコード/悪いコードで学ぶ設計入門 ―保守しやすい 成長し続けるコードの書き方』(Amazon)

事業分析・データ設計のためのモデル作成技術入門

モデリング・分析のための手法が体系的に学べる貴重な本。
モデリングのヒントが非常に多くあり、業務理解など現状分析が必要な場合にも非常に有用。
イベントソーシングのメッセージなどにも活用できます。

佐藤 正美著 『事業分析・データ設計のためのモデル作成技術入門』(Amazon)

更に知識を深めていきたい方におすすめ

Domain Modeling Made Functional: Tackle Software Complexity with Domain-Driven Design and F#

本書の半分以上はどのようにドメインを理解してモデリングしていくかというものとなっており、イベントストーミングなどを活用してコンテキストを明確にしF#(関数型言語)での実装に落とし込むものです。
F#を利用していなくても技術要素を入れずにドメインを理解し、型を作り実践に落とし込む流れは参考になるはず。(2022年9月末現在、日本語書籍無し)

Scott Wlaschin著 『Domain Modeling Made Functional: Tackle Software Complexity with Domain-Driven Design and F#』(Amazon)

セキュア・バイ・デザイン 安全なソフトウェア設計

DDDの実践的応用事例としてイチオシの本。
ドメインモデリングや境界付けられたコンテキストなどのDDDに登場する手法や考え方が、システムの問題解決にどのように貢献するかが解説されています。
DDDの理解がさらに深まるでしょう。

Dan Bergh Johnsson著 『セキュア・バイ・デザイン 安全なソフトウェア設計』(Amazon)

まとめ

DDDの理解を深めるアプローチは、実際に実装パターンから入って失敗経験をもとに学んでいく方法のほか、コンピュータサイエンスをしっかり理解してから学んでいく方法などさまざまです。
読者の皆様の状況にあわせて、今回取り上げた書籍を上手に活用してみてはいかがでしょうか。

FLEXYとはABOUT FLEXY

『FLEXY』はエンジニア・デザイナー・CTO・技術顧問を中心に
週2-3日 x 自社プロダクト案件を紹介するサービスです