ドメイン駆動設計をはじめよう
ドメインクドウセッケイヲハジメヨウ
ソフトウェアの実装と事業戦略を結びつける実践技法
- 著者:
- Vlad Khononov / 増田 亨 / 綿引 琢磨(ヴラド ホノノフ / マスダ トオル / ワタビキ タクマ)
- 価格:
- ¥3,960
- 出版社:
- オライリー・ジャパン
- 出版日:
- 2024年07月20日頃
- ISBN:
- 9784814400737
- 在庫:
- 1
- 判型:
- 単行本
なぜ注目されているか
書籍紹介
ドメイン駆動設計を実践するために最初に手にするべき 1 冊!
ソフトウェアの構築において、 開発者は変化する技術トレンドを追うだけでなく、背後にある事業活動 (ビジネスドメイン) を理解する必要があります。ドメイン駆動設計はビジネスドメインの知識に焦点をあてた設計手法です。本書は基礎知識としてドメイン駆動設計の概念や用語の教科書的な説明からはじまり、事業活動を分析し、ビジネス戦略を理解し、ソフトウェア設計をビジネスニーズに合わせるための一連の核となるパターン、原則、実践方法を説明します。
技書の森解説
ドメイン駆動設計をこれから学ぶ人が、用語の暗記ではなく「どの業務にどれだけ設計の手間をかけるか」を判断できるようになるための入門書が『ドメイン駆動設計をはじめよう』 (Vlad Khononov 著、増田 亨、綿引 琢磨 訳、オライリー・ジャパン、2024 年 7 月刊) です。副題はソフトウェアの実装と事業戦略を結びつける実践技法、原書は Learning Domain-Driven Design です。版元の紹介文では、エリック・エヴァンスが提唱した設計手法を、概念と用語の教科書的な説明から始めて、事業活動の分析、ビジネス戦略の理解、設計を事業の必要に合わせるためのパターンと原則へと進める構成が説明されています。
4 部 16 章の構成、事業分析から実装方法の選択まで
本書は 4 部構成です。第 I 部「設計の基本方針」は、1 章の事業活動の分析から、業務知識の発見、事業活動の複雑さへの向き合い方、区切られた文脈どうしの連係までの 4 章で、どこに境界を引き、境界どうしをどうつなぐかを扱います。第 II 部「実装方法の選択」は、トランザクションスクリプトとアクティブレコードによる単純な業務ロジックの実装、ドメインモデルによる複雑な業務ロジックへの対処、イベントソーシングを使った時間軸でのモデル化、レイヤードアーキテクチャやポートとアダプター、コマンド・クエリ責任分離といった技術方式、そして通信までの 5 章です。第 III 部「ドメイン駆動設計の実践」は設計の経験則、設計の進化、イベントストーミング、現実世界での適用の 4 章、第 IV 部「他の方法論や設計技法との関係」はマイクロサービス、イベント駆動型アーキテクチャ、データメッシュの 3 章です。巻末には事例研究の付録 A と演習問題の回答の付録 B が付き、各章の末尾には演習問題が置かれています。
戦略と実装を一冊でつなぐ読みどころ
ドメイン駆動設計が難しいと言われる理由の一つは、エンティティや集約といった実装の部品と、業務をどの単位で切り分けるかという戦略の話が、別々の層の議論として語られがちな点にあります。本書の章立ては、まず業務領域を分類 / 比較して境界を決め、その業務領域の複雑さに応じてトランザクションスクリプトから イベントソーシング までの実装方法を選び分けるという順序になっており、10 章では業務ロジックの実装方法や技術方式の選択、テストの基本方針を経験則として整理しています。すべての機能に重い設計を適用するのでも、すべてを単純な実装で済ませるのでもなく、事業上の重要度と複雑さに見合った手間を配分するという考え方を、判断の手順として持ち帰れる点が読みどころです。訳語にも特徴があり、目次ではサブドメインを業務領域、一般に 境界づけられたコンテキスト と訳される概念を区切られた文脈と表記しています。他の訳書や記事と読み比べるときは、この対応を意識しておくと混乱を避けられます。
前提知識と、他の DDD 本との使い分け
前提として、業務システムの開発に一度は関わり、クラスやモジュールの分割、データベースを使った更新処理を自分で書いた経験があると、各章の選択肢がなぜ必要なのかを実感しながら読めます。チームでの導入を考えている人にとっては、付箋を使って業務の出来事を洗い出す イベントストーミング の進め方や、ドメイン駆動設計を組織に売り込む方法まで扱っている点も実務に直結します。一方で、特定の言語やフレームワークでの実装手順を一歩ずつ追いたい人には、本書の抽象度は高く感じられるかもしれません。原典にあたる『エリック・エヴァンスのドメイン駆動設計』は概念の出どころを確かめるための本、本書はその全体像と判断の順序を短い道のりで掴むための本と位置づけると使い分けやすくなります。設計分野の本を段階ごとに選びたい場合は 設計 / アーキテクチャ本の選び方 も参考になります。
マイクロサービスへの分割の単位に迷っている人、業務の言葉とコードの言葉がずれて改修のたびに説明コストが膨らんでいるチーム、ドメイン駆動設計の本を一度手に取って挫折した人にとって、本書は境界の決め方から実装方法の選択までを一続きの判断として学び直せる一冊です。演習問題と事例研究で自分の担当業務に当てはめながら読み進めれば、設計の打ち合わせで使える共通の語彙と判断基準が手元に残ります。
言及した記事 (51 件)
Naming -名前付け-
♡ 2319Java, Ruby, .NET, ドメイン駆動設計, naming個人的技術書大賞2024
♡ 429技術書ドメイン駆動設計は残酷
♡ 220開発, 本, ポエム, DDD, 学習GWも勉強したい方向けに、よくオススメされる技術書をカテゴリ別にまとめてみた
♡ 214Python, AWS, Security, 初心者, AI「複雑な業務ロジック」が読みづらいのは「記述が分散」しているから
♡ 162設計ノウハウDDDのドメイン・サブドメイン・ユビキタス言語・境界づけられたコンテキストを整理する
♡ 148DDD, ドメイン駆動設計「ドメイン駆動設計をはじめよう」を3回読んで学んだ事をまとめる
♡ 137アーキテクチャ, ddd, ドメイン駆動設計【読書の夏?】各分野のおすすめ技術書を75冊まとめてみた
♡ 125AWS, Security, 初心者, 技術書, AI「ドメイン駆動設計をはじめよう」の感想
♡ 88技術書, ddd, ドメイン駆動設計一気通貫の意味を知れ!〜『ドメイン駆動設計をはじめよう』ではじめる業務分析〜
♡ 40DDD, AdventCalendar2025
この本に興味がある方におすすめ
関連する本
Vlad Khononov の他の書籍
関連記事
ChatGPT に聞けば済む時代に、あえて本を開く理由
生成 AI で何でも聞ける時代に、技術書を読む意味はあるのか。AI の回答と書籍の知識の決定的な違いを掘り下げ、両者の使い分けを提案します。
LLM / 生成 AI 本ガイド - 仕組み / 実装 / エージェント開発の 3 層で選ぶ (2026 年 8 月時点)
LLM (大規模言語モデル) / 生成 AI を学ぶ技術書の選び方を 3 層 (読み物で仕組みを掴む → 中身を実装で理解する → RAG / AI エージェント開発) で整理。2026 年 8 月時点の定番書と、変化の速い分野で本を選ぶときの注意点を解説します。
本の「はじめに」は読み飛ばさないで
多くの人が読み飛ばす「はじめに」には、その本を最大限に活用するためのヒントが詰まっています。たった 5 分で読めるこのページの価値を解説します。
関連用語
ドメイン駆動設計 (DDD)
ビジネスドメインの知識を中心に据え、ドメインエキスパートと開発者が共通言語で協働しながらソフトウェアを設計する手法
貧血ドメインモデル
ドメインオブジェクトがデータのみを持ち、ビジネスロジックが外部のサービスに散在するアンチパターン
DNS
ドメイン名を IP アドレスに変換するインターネットの名前解決システム
オニオンアーキテクチャ
ドメインロジックを中心に据え、外側の層が内側に依存する同心円状のアーキテクチャ
イベントストーミングとは - 付箋でドメインを可視化するワークショップ手法
イベントストーミングとは、ドメインエキスパートと開発者が付箋でビジネスプロセスをドメインイベントとして可視化するワークショップ手法。付箋の色の意味、3 つの型の使い分け、境界づけられたコンテキストの発見方法を解説。
リポジトリパターン
データアクセスロジックをカプセル化し、ビジネスロジックからデータストアの詳細を隠蔽するパターン