実践ドメイン駆動設計(ジッセンドメインクドウセッケイ)
- 著者:
- ヴォーン・ヴァーノン/高木 正弘(ヴォーン ヴァーノン/タカギ マサヒロ)
- 出版社:
- 翔泳社
- 出版日:
- 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 記事 (11 件)
チームで使われる単語を統一するためのデザインシステム(#1: デザイントークン編)
♡ 15Design, プロダクトデザイン, Figma, デザインシステム, デザイントークンJava Spring/SpringBoot習得向けおすすめ本
♡ 4Java, spring, 初心者, 書籍, SpringBoot【DDD】「全人類がDDDを熟知した綺麗な世界」という夢物語を捨てて、泥臭く始めよう
♡ 2DDD, ドメイン駆動設計ドメイン駆動設計(DDD)入門(自習用)
♡ 1ドメイン駆動設計『ドメイン駆動トランスフォーメーション』の要点整理とアンチパターン5選
♡ 1初心者, DDD, アンチパターン, 学習, OREILLYデータモデル × 仕様駆動開発 = 迷子にならないシステム開発フロー
♡ 1ドメイン駆動設計, データモデル, AI駆動開発, バイブコーディング, 仕様駆動開発顧客が本当に必要だったものとドメイン駆動開発
♡ 1システム開発, システム設計なぜ数理最適化エンジニアの設計は変更に弱くなるのか ~ 「ユーザーの言葉」で設計しよう
♡ 1ドメイン駆動設計, 数理最適化, 設計思想【アーキテクチャ宣言】グラフ理論でシステム設計する「Topological Contract Chain」トポロジー契約チェーン
♡ 0DDD, アーキテクチャ, グラフ理論, PowerApps, AI駆動開発TypeScript・Pythonで実装するDDD戦術的パターン実践ガイド
♡ 0Python, TypeScript, DDD, ドメイン駆動設計, 設計パターン
言及 Zenn 記事 (2 件)
この本に興味がある方におすすめ
この本に関連
関連記事
ソフトウェア開発の歴史を変えた 5 冊の技術書
アルゴリズムの学問化からコードの可読性革命まで、ソフトウェア開発の方向性を決定づけた 5 冊の技術書を、時代背景とエピソードとともに紹介します。
セキュリティ本ガイド - Web 開発者が読むべき技術書の選び方
Web セキュリティの基礎から実践まで学べる技術書の選び方マトリクスと、読了後にやるべき 3 つのアクションを紹介します。
技術書の読む順番戦略 - 複数冊を組み合わせて理解を加速させる
技術書を 1 冊ずつ読むのではなく、複数冊を戦略的に組み合わせることで理解の深さと速度を飛躍的に高める方法を解説します。
関連用語
ドメイン駆動設計 (DDD)
ビジネスドメインの知識を中心に据え、ドメインエキスパートと開発者が共通言語で協働しながらソフトウェアを設計する手法
貧血ドメインモデル
ドメインオブジェクトがデータのみを持ち、ビジネスロジックが外部のサービスに散在するアンチパターン
DNS
ドメイン名を IP アドレスに変換するインターネットの名前解決システム
Route 53
AWS のマネージド DNS サービスで、ドメイン登録、DNS ルーティング、ヘルスチェックを提供する
集約
ドメイン駆動設計において、一貫性を保つべきオブジェクト群をまとめ、単一のルートエンティティ経由でアクセスする設計パターン
オニオンアーキテクチャ
ドメインロジックを中心に据え、外側の層が内側に依存する同心円状のアーキテクチャ