|
【カテゴリ】 その他
「実践ドメイン駆動設計」から学ぶDDDの実装入門
![「実践ドメイン駆動設計」から学ぶDDDの実装入門](https://wings.msn.to/books/978-4-7981-6149-5/978-4-7981-6149-5.jpg) |
WINGSプロジェクト 青木 淳夫/著
山田祥寛/監修
株式会社 翔泳社/発行
定価
2,750円
B5正寸・
184ページ・
1色
ISBN 978-4-7981-6149-5
発刊日:
2019年5月31日
|
本書の特徴
普段の開発でDDD実装を始める方法を解説
本書は、ヴァーン・ヴァーノン著「Implementing Domain‑Driven Design」(邦題「実践ドメイン駆動設計-エリック・エヴァンスが確立した理論を実際の設計に応用する」)の流れに沿って、重要な部分にフォーカスし、ドメイン駆動(DDD)について理解することをお手伝いします。
ぜひ、本書をきっかけに、DDDに挑戦してみてください。
本書について取り上げていただいたブログさま
-
・無限大な夢のあと -
noimpslmtbrkさま
-
【書評】実践ドメイン駆動設計から学ぶDDDの実装入門 ( @yyamada )(2019年8月26日)
-
・note -
にわけんさま
-
【本の紹介】「実践ドメイン駆動設計」(2019年7月22日)
-
・purucat’s blog -
purucatさま
-
"「実践ドメイン駆動設計」から学ぶDDDの実装入門" (全14章) 総評(2019年7月10日)
-
・sogaoh Laboratory -
sogaohさま
-
[Book Review]「実践ドメイン駆動設計」から学ぶDDDの実装入門(2019年7月07日)
Contents |
- 第1章 「DDDへの誘い」~ドメイン駆動設計のメリットと始め方~
-
1.1 [WHAT]ドメイン駆動設計の概要
1.2 [WHO]DDDを始められる人とは
1.3 [WHY1]DDDを導入するメリット
1.4 [WHY2]開発費用を「コスト」から「事業投資」へ
1.5 [WHY3]ドメインモデルによる「複雑さ」への対処
1.6 [HOW1]ユビキタス言語で設計する方法
1.7 [HOW2]DDD導入に向けた周りへの説得方法
1.8 [HOW3]DDD導入に向けた優先順位/体制
1.9 まとめ
- 第2章 「ドメイン」「サブドメイン」「境界づけられたコンテキスト」~DDDで取り組む領域~
-
2.1 「ドメイン」と「境界づけられたコンテキスト」の全体像
2.2 ドメインとは
2.3 「境界づけられたコンテキスト」とは
2.4 IDDD本の架空サンプルプロジェクト「SaaSOvation」
2.5 分割した「ドメイン」と「境界づけられたコンテキスト」の評価方法
2.6 まとめ
- 第3章 「コンテキストマップ」~境界づけられたコンテキスト間のチーム関係~
-
3.1 コンテキストマップとは
3.2 コンテキストマップの「組織的パターン」と「統合パターン」
3.3 チームの関係を示す「組織的パターン」
3.4 境界づけられたコンテキスト間の連携方法を示す「統合パターン」
3.5 SaaSOvationにおけるコンテキストマップの例
3.6 SaaSOvationにおけるコンテキストの統合方式例
3.7 コンテキスト間の連携のシーケンス図
3.8 SaaSOvationの組織的パターン
3.9 まとめ
- 第4章 「アーキテクチャ」~レイヤからヘキサゴナルへ~
-
4.1 本章で紹介するアーキテクチャの種類
4.2 特定のアーキテクチャに依存しないDDD
4.3 SaaSOvationのCIOに聞くアーキテクチャの変遷
4.4 レイヤからDIP、そしてヘキサゴナルへ
4.5 レイヤ化アーキテクチャとは
4.6 依存関係逆転の原則(DIP)を用いたレイヤ化アーキテクチャ
4.7 ヘキサゴナルアーキテクチャ
4.8 ヘキサゴナルでのサービス指向のアプローチ
4.9 ヘキサゴナルで使用されるREST
4.10 コマンドクエリ責務分離
(CQRS:Command Query Responsibility Segregation)
4.11 DDDにおけるCQRSでの流れ
4.12 イベント駆動アーキテクチャ
4.13 まとめ
- 第5章 「エンティティ」~一意な識別子で同一性を識別~
-
5.1 エンティティと値オブジェクト
5.2 モデリングとエンティティ発見の流れ
5.3 まとめ
- 第6章 「値オブジェクト」~振る舞いを持つ不変オブジェクト~
-
6.1 値オブジェクトとは
6.2 値オブジェクトの特徴
6.3 複数コンテキストの結合を緩やかにする値オブジェクト
6.4 ドメインモデルの区分や種類を示す「標準型(タイプコード)」
6.5 値オブジェクトの実装コード
6.6 まとめ
- 第7章 「ドメインサービス」~複数の物を扱うビジネスルール~
-
7.1 DDDにおけるサービスとは
7.2 DDDの「ドメインサービス」と一般的な「サービス」の違い
7.3 ドメインサービスの例
7.4 ドメインサービスの失敗例
7.5 ドメインサービス導入時のポイント
7.6 ドメインサービスの設計方法
7.7 まとめ
- 第8章 「ドメインイベント」~出来事を記録して活用~
-
8.1 ドメインイベントとは
8.2 ドメインイベントがもたらすメリット
8.3 ドメインイベントの導入
8.4 「ドメインイベント」クラスのモデリング
8.5 基本的なイベント送受信方法
8.6 他システム(他の境界づけられたコンテキスト)へのイベント送信
8.7 イベントストアとは
8.8 自立型のサービスのメリット
8.9 メッセージングミドルウェアによる連携方法
8.10 まとめ
- 第9章 「モジュール」~高凝集で疎結合にまとめる~
-
9.1 モジュールとは
9.2 モジュールの設計方法
9.3 モジュールの命名規約
9.4 モジュール間の依存関係
9.5 アプリケーションレイヤのモジュール分割
9.6 まとめ
- 第10章 「集約」~トランザクション整合性を保つ境界~
-
10.1 DDDにおける集約
10.2 IDDDのサンプルプロジェクトで考える集約
10.3 集約の設計におけるルール
10.4 基本ルールに反する例外パターン
10.5 集約の実装コード例
10.6 集約のコーディング時に役立つ法則
10.7 まとめ
- 第11章 「ファクトリ」~複雑な生成をユビキタス言語でシンプルに~
-
11.1 ファクトリとは
11.2 ファクトリを使う理由
11.3 ファクトリの設計
11.4 まとめ
- 第12章 「リポジトリ」~集約の永続化管理を担当~
-
12.1 リポジトリとは
12.2 リポジトリを利用する「アプリケーションサービス」
12.3 コレクション指向のリポジトリ
12.4 永続指向のリポジトリ
12.5 まとめ
- 第13章 「境界づけられたコンテキストの統合」~分散システム設計~
-
13.1 「境界づけられたコンテキスト」と「コンテキストマップ」
13.2 分散システムの基本
13.3 コンテキスト間の「データ交換フォーマット」
13.4 イベントを連携する「Notification(通知)」の仕組み
13.5 コンテキスト間における連携アーキテクチャ
13.6 RESTfulリソースを用いた統合アーキテクチャ
13.7 メッセージングを使った統合アーキテクチャ
13.8 まとめ
- 第14章 「アプリケーション」~ドメインモデルを利用するクライアント~
-
14.1 ドメインモデルを利用するアプリケーションとは
14.2 ドメイン層とUI層間における情報の受け渡し方法
14.3 複数の境界づけられたコンテキストの統合・合成
14.4 UI層での描画に関わるモデル
14.5 アプリケーション層における実装
14.6 まとめ
14.7 参考資料
|
|