エリック・エヴァンスのドメイン駆動設計(エリック エヴァンス ノ ドメイン クドウ セッケイ)
ソフトウェア開発の実践
- 著者:
- エリック・エヴァンス/今関剛(エヴァンス,エリック/イマゼキ,タケシ)
- 出版社:
- 翔泳社
- 出版日:
- 2011年04月
- ISBN:
- 9784798121963
- シリーズ:
- IT architects’ archive
- 在庫:
- 在庫あり
なぜ注目されているか
技書の森解説
「ドメイン駆動設計 (DDD) を学びたいが、エヴァンス本は難しいと聞く」という声は絶えません。実際、本書は 500 ページを超える分量に加え、翻訳の硬さもあり、一読で全体像を掴むのは容易ではありません。それでもなお原典として読まれ続けるのは、 DDD の思想が「パターンのカタログ」ではなく「ソフトウェアの複雑さにどう立ち向かうか」という問いへの回答として書かれているからです。
本書の核にあるのは、ビジネスの専門家と開発者が共通の言語 (ユビキタス言語) を鍛え上げ、その言語がそのままコードの構造になる、という設計哲学です。 Entity や Value Object といった戦術的パターンだけを拾い読みしても実務では空回りしがちで、第 4 部の戦略的設計 (境界づけられたコンテキスト、コンテキストマップ) まで読み通して初めて全体の骨格が見えてきます。
挫折しやすい本であることは否定できませんが、対策はあります。先に軽量な入門書や勉強会資料で全体構成を把握してから本書に臨むと、各章が地図のどこに位置するかが分かり格段に読みやすくなります。一度で消化する本ではなく、設計判断に迷ったときに該当章を引き直す辞書的な使い方が長く効きます。大規模なドメインを扱うチームで設計に共通言語を持ちたいと考えるなら、避けて通れない一冊です。
言及 Qiita 記事 (161 件)
エンジニア歴20年の私が、素人バイブコーディング勢に物申す
♡ 2506Security, ポエム, AI, 新人プログラマ応援, VibeCoding「ビジネスロジック」とは何か、どう実装するのか
♡ 2343DDD, 設計, CleanArchitectureWebアプリケーションフレームワーク導入時に考慮すべき22の観点
♡ 2299DDD, 設計, フレームワーク, アーキテクチャエンジニアに読んで欲しい技術書90選
♡ 1956技術書, 書籍, 新人プログラマ応援中規模Web開発のためのMVC分割とレイヤアーキテクチャ
♡ 1836Rails, mvcお前らがModelと呼ぶアレをなんと呼ぶべきか。近辺の用語(EntityとかVOとかDTOとか)について整理しつつ考える
♡ 1661model, DDD, 設計1年以上かけて生産性倍増+成長し続けるチームになった施策を全部公開
♡ 1623初心者, ポエム, チーム開発, 初心者向け, 新人プログラマ応援SREやクラウドエンジニアが読むと良さげな本まとめ
♡ 1246Linux, AWS, Cloud, インフラ, SRE大規模Webアプリケーションにおける複雑性とアーキテクチャ設計に関する一考察
♡ 814オブジェクト指向, DDD, 設計, アーキテクチャMVC、3 層アーキテクチャから設計を学び始めるための基礎知識
♡ 756オブジェクト指向, 初心者, mvc, DDD, 設計
言及 Zenn 記事 (2 件)
この本に興味がある方におすすめ
この本に関連
関連記事
あの有名 OSS のコードは、この本の影響を受けている
広く使われているオープンソースソフトウェアの設計には、特定の技術書の影響が色濃く反映されています。OSS のコードと技術書の関係を知ると、両方の理解が深まります。
リーダブルコードの次に読む本 - ステップアップの読書ルート
リーダブルコードを読み終えた後、設計力を段階的に高めるための読書ルートと、各レベルで学ぶべきテーマを紹介します。
本棚を見ればエンジニアのレベルがわかる
エンジニアの本棚に並ぶ本の構成は、その人のスキルレベルとキャリアの方向性を映し出します。本棚の変遷パターンから、自分の現在地と次のステップを読み解く方法を紹介します。
関連用語
ドメイン駆動設計 (DDD)
ビジネスドメインの知識を中心に据え、ドメインエキスパートと開発者が共通言語で協働しながらソフトウェアを設計する手法
貧血ドメインモデル
ドメインオブジェクトがデータのみを持ち、ビジネスロジックが外部のサービスに散在するアンチパターン
DNS
ドメイン名を IP アドレスに変換するインターネットの名前解決システム
オニオンアーキテクチャ
ドメインロジックを中心に据え、外側の層が内側に依存する同心円状のアーキテクチャ
集約
ドメイン駆動設計において、一貫性を保つべきオブジェクト群をまとめ、単一のルートエンティティ経由でアクセスする設計パターン
Route 53
AWS のマネージド DNS サービスで、ドメイン登録、DNS ルーティング、ヘルスチェックを提供する