実践ドメイン駆動設計(ジッセンドメインクドウセッケイ)
ソフトウェア工学・設計- 著者:
- ヴォーン・ヴァーノン/高木 正弘(ヴォーン ヴァーノン/タカギ マサヒロ)
- 出版社:
- 翔泳社
- 出版日:
- 2015年03月16日頃
- ISBN:
- 9784798131610
- シリーズ:
- Object Oriented Selection
- 在庫:
- 在庫あり
なぜ注目されているか
書籍紹介
『エリック・エヴァンスのドメイン駆動設計』は、 2003 年の刊行だったにもかかわらず、大型ソフトウェア構築時につきまとう不透明感を払拭するための指針として現役技術者に多大な影響を与えた。ある意味、エリック・エヴァンスの先見性によって、今日、必要とされるパタン/アンチパタンが整理されていたためだ。
とはいえ、それからすでに 11 年。ベースとなるオブジェクト指向はそれほど大きな変革はないものの、この 10 年の間にコンピューティングの対象は大きく増え、さらにドメイン駆動設計をコトバでは知っているものの、経験値のまだ低い技術者の増加もあり、理論だけではなく現状に則した形で体得する必要性が増している。
本書は DDD の考え方はもちろん、コミュニティや実際のビジネスシーンのなかから実践的な方法論を精錬し、いわば 21 世紀 (初頭) 型ドメイン駆動設計を伝授するものであり、現在のニーズに合致する内容で構成されている。
第 1 章 DDD への誘い
第 2 章 ドメイン、サブドメイン、境界づけられたコンテキスト
第 3 章 コンテキストマップ
第 4 章 アーキテクチャ
第 5 章 エンティティ
第 6 章 値オブジェクト
第 7 章 サービス
第 8 章 ドメインイベント
第 9 章 モジュール
第 10 章 集約
第 11 章 ファクトリ
第 12 章 リポジトリ
第 13 章 境界づけられたコンテキストの結合
第 14 章 アプリケーション
技書の森解説
Eric Evans の "Domain-Driven Design" (通称エヴァンス本) は DDD の原典ですが、抽象度が高く、読み通しても「で、コードにどう落とすのか」が掴みにくいという声が少なくありません。本書はその橋渡し役として書かれた一冊で、エヴァンス本の概念を Java のコード例を交えて具体化し、境界づけられたコンテキスト、集約、ドメインイベント、リポジトリといった戦術パターンの実装判断を追体験できるようにしています。
著者ヴォーン・ヴァーノンは DDD コミュニティの中心人物の一人であり、本書ではエヴァンス本を前提としつつも、 CQRS やイベントソーシングなど、原典の刊行後に発展した設計手法にも紙幅を割いています。そのため、 DDD の全体像をエヴァンス本で掴んだ後に本書で実装レベルの理解を固めるという読み方が王道ですが、本書から入っても概念の説明が丁寧なため独立して読むことは可能です。
注意すべきは分量と密度です。翻訳で 600 ページを超え、 1 章ごとの情報量も多いため、通読には相応の時間がかかります。全章を最初から順に読もうとするより、自分が設計で困っている部分 (集約の境界、コンテキストマップなど) から拾い読みし、必要に応じて周辺章に広げていく使い方が実務では効率的です。
言及 Qiita 記事 (10 件)
チームで使われる単語を統一するためのデザインシステム(#1: デザイントークン編)
♡ 15Design, プロダクトデザイン, Figma, デザインシステム, デザイントークンJava Spring/SpringBoot習得向けおすすめ本
♡ 5Java, spring, 初心者, 書籍, SpringBoot【DDD】「全人類がDDDを熟知した綺麗な世界」という夢物語を捨てて、泥臭く始めよう
♡ 4DDD, ドメイン駆動設計ドメイン駆動設計(DDD)入門
♡ 1ドメイン駆動設計『ドメイン駆動トランスフォーメーション』の要点整理とアンチパターン5選
♡ 1初心者, DDD, アンチパターン, 学習, OREILLYデータモデル × 仕様駆動開発 = 迷子にならないシステム開発フロー
♡ 1ドメイン駆動設計, データモデル, AI駆動開発, バイブコーディング, 仕様駆動開発顧客が本当に必要だったものとドメイン駆動開発
♡ 1システム開発, システム設計【書評】 Learning Domain-Driven Design
♡ 0DDD, ドメイン駆動設計, 設計, アーキテクチャ, 書評TypeScript・Pythonで実装するDDD戦術的パターン実践ガイド
♡ 0Python, TypeScript, DDD, ドメイン駆動設計, 設計パターンWebサービスにてUI層とドメイン層でエンティティを共有する試み
♡ 0spring, AOP, ドメイン駆動設計, MVCモデル, DPO
言及 Zenn 記事 (2 件)
この本に興味がある方におすすめ
この本に関連
関連記事
Web デザイン本ガイド - HTML/CSS、Figma、Photoshop を学ぶ順番
Web デザインを独学する本の選び方を「コーディング、ツール、デザイン原則」の 3 本柱で整理。HTML/CSS の入門書、Figma と Photoshop の教本、レイアウトと配色の定番書を、2026 年 8 月時点の収載書から学ぶ順番つきで解説します。
設計 / アーキテクチャ本ガイド - 設計力を上げる技術書の選び方
ソフトウェア設計を学べる技術書をコード / モジュール / システムの 3 レイヤーに分類し、レベルに応じた読む順番の指針を紹介します。
リーダブルコードの次に読む本 - ステップアップの読書ルート
リーダブルコードを読み終えた後、設計力を段階的に高めるための読書ルートと、各レベルで学ぶべきテーマを紹介します。
関連用語
ドメイン駆動設計 (DDD)
ビジネスドメインの知識を中心に据え、ドメインエキスパートと開発者が共通言語で協働しながらソフトウェアを設計する手法
貧血ドメインモデル
ドメインオブジェクトがデータのみを持ち、ビジネスロジックが外部のサービスに散在するアンチパターン
DNS
ドメイン名を IP アドレスに変換するインターネットの名前解決システム
腐敗防止層
レガシーシステムと新システムの間に変換層を設け、新システムの設計を汚染から守るパターン
集約
ドメイン駆動設計において、一貫性を保つべきオブジェクト群をまとめ、単一のルートエンティティ経由でアクセスする設計パターン
リポジトリパターン
データアクセスロジックをカプセル化し、ビジネスロジックからデータストアの詳細を隠蔽するパターン