エリック・エヴァンスのドメイン駆動設計の表紙

エリック・エヴァンスのドメイン駆動設計(エリック エヴァンス ノ ドメイン クドウ セッケイ)

ソフトウェア開発の実践

ソフトウェア工学・設計
著者:
エリック・エヴァンス/今関剛(エヴァンス,エリック/イマゼキ,タケシ)
出版社:
翔泳社
出版日:
2011年04月
ISBN:
9784798121963
シリーズ:
IT architects’ archive
在庫:
在庫あり
4.12(17 件 / 楽天ブックス)
DDD

なぜ注目されているか

言及数
4
ソフトウェア工学・設計
4
総合7 3 ランクダウン 196 件の言及
061120222023202420252026

技書の森解説

『エリック・エヴァンスのドメイン駆動設計』は、 Eric Evans 氏の著書『 Domain-Driven Design: Tackling Complexity in the Heart of Software 』の邦訳で、今関剛氏・和智右桂氏・牧野祐子氏の翻訳 (監修は今関氏) により翔泳社から 2011 年 4 月に刊行されました。ドメイン駆動設計 (DDD) という言葉の出どころであり、版元も「ドメイン駆動設計の定番書」として紹介しています。副題の「ソフトウェアの核心にある複雑さに立ち向かう」が示すとおり、これは特定の技術やフレームワークの本ではありません。業務の複雑さそのものをモデルとして捉え、そのモデルを開発チームの共通言語とコードの構造に一致させていくための、体系的なアプローチを提示する本です。

4 部構成: 土台・戦術・深化・戦略

全体は 4 部構成です。第 1 部「ドメインモデルを機能させる」では、ドメインの専門家との対話から知識をかみ砕き、チーム全員が同じ言葉でモデルを語るユビキタス言語を育て、そのモデルを実装と結びつけるという DDD の土台を据えます。第 2 部「モデル駆動設計の構成要素」は、エンティティ、値オブジェクト、集約、ファクトリ、リポジトリ といった、モデルをコードに落とすための構成要素を扱う戦術面の中核です。第 3 部「より深い洞察へ向かうリファクタリング」は、動くコードを保ったままモデル自体を深めていく過程を扱い、ブレイクスルー、暗黙的な概念を明示的にする、しなやかな設計といった章が並びます。そして第 4 部「戦略的設計」が、境界づけられたコンテキストとコンテキストマップによる複数モデルの共存、コアドメインを見極める蒸留、大規模な構造へと視野を広げ、システム全体とチーム編成に関わる意思決定までを射程に収めます。各パターンにはユビキタス言語 (UBIQUITOUS LANGUAGE) のように英語の正式名が併記され、貨物輸送プログラムをはじめとする具体例を通して説明が進むため、抽象論だけで終わらない作りになっています。

読み方の工夫: 第 1 部と第 4 部を先に

読み方には順序の工夫が要ります。エンティティやリポジトリといった第 2 部の戦術的パターンは単体でも適用できてしまうため、そこだけを取り出して DDD を理解した気になりやすいのですが、本書の主張の幹は、ユビキタス言語という前提と、第 4 部の戦略的設計にあります。どこまでを 1 つのモデルの適用範囲とするか (境界づけられたコンテキスト) 、限られた設計資源をどこに集中させるか (コアドメイン) という判断こそが、複雑さとの戦いの主戦場だからです。通読が重い場合 でも、第 1 部と第 4 部を先に押さえてから戦術面へ戻ると、個々のパターンが何のためにあるのかが見通しやすくなります。巻末には用語解説と参考文献も付いており、読後は設計判断に迷ったときに該当パターンを引き直す参照書として長く使えます。

2011 年刊でも陳腐化しにくい理由と対象読者

訳書の刊行は 2011 年ですが、内容は特定の言語やツールに依存しない設計の方法論であり、時間による陳腐化が起こりにくい種類の本です。ユビキタス言語や境界づけられたコンテキストといった用語は後続の設計論でも広く使われており、その定義を原典にあたって確認できることは、この本を持つ大きな価値です。すぐ使えるコード例や特定フレームワークでの実装レシピを求める人には向きませんが、業務の複雑さに正面から向き合う設計の拠り所がほしい開発者、チームで設計の共通言語を作りたいリーダー には、版元ページで Kent Beck 氏が「思慮深いソフトウェア開発者全員の必携書である」と推薦を寄せる本書を、腰を据えて読む価値のある 1 冊として勧められます。

言及 Qiita 記事 (163 件)

言及 Zenn 記事 (2 件)

この本に興味がある方におすすめ

この本に関連

関連記事

関連用語

共有:Xはてブ