「実践ドメイン駆動設計」社内読書会まとめ ~IDDD本難民に捧げる1章から7章~
- 1. 株式会社ネクストスケープ 御中
青木 淳夫 & 上坂 貴志
Sansan DDD勉強会 #2
http://connpass.com/event/23174/
2015.12.16
「実践ドメイン駆動設計」社内読書会まとめ
~IDDD本難民に捧げる1章から7章~
- 8. 8
目次の章で挫折して難民になりかねないので、興味ある章から読んでも良いかもしれません。
IDDD本の目次
章 タイトル ページ コメント
目次 序文、賛辞、初めに、謝辞、著者、訳者、本書の読み方 24 各章の概要説明があります
1章 DDDへの誘い 38 DDDを実践するメリットについて
2章 ドメイン、サブドメイン、境界づけられたコンテキスト 40 巨大な泥団子にならによう業務別に分けよう
3章 コンテキストマップ 24 迷子にならないためのもの
4章 アーキテクチャ 53 レイヤから、ヘキサゴナルアーキテクチャへ
5章 エンティティ 45 値オブジェクトとの違いを意識
6章 値オブジェクト 42 エンティティとの違いを意識
7章 サービス 19 変換・算出はここで
8章 ドメインイベント 45 分散&同期のテクニック
9章 モジュール 11 「内部構成もユビキタス」で可読性アップ
10章 集約 40 コンテキスト内の最小トランザクション単位
11章 ファクトリ 11 ファクトリって、Factoryメソッドじゃないんだよ
12章 リポジトリ 44 いわゆるリポジトリ
13章 境界づけられたコンテキストの統合 56
14章 アプリケーション 28
付録A 集約とイベントソーシング:A+ES 41
付録B 参考文献 7
- 13. 13
1章の構成は
• 私にもできるの?
• あなたがDDDをすべき理由
• DDDを行う方法
• DDDを採用する事業価値
• DDDの導入にあたっての課題
• 現実味のあるフィクション
となっています。
DDD(ドメイン駆動開発)を使うとどんなメリットがあるのか、なぜDDD以外のや
り方だと失敗するのか、そして、上司、ドメインエキスパート、技術者へのDDDのす
ばらしさの売り込み方法を紹介しています。
「1章:DDDへの誘い」の構成
- 17. 17
2章の構成は
• 全体像
• なぜそれほどまでに戦略的設計を重視する
のか
• 実世界におけるドメインとサブドメイン
• 境界づけられたコンテキストの意味を知る
• サンプルのコンテキスト
となっています。
ここではDDD固有の主要概念である「ドメイン」「
コアドメイン」「サブドメイン」「境界づけられたコ
ンテキスト」の説明が行われています。
「2章:ドメイン、サブドメイン、境界づけられたコンテキスト」の構成
※ドメインの構成を示した図
コアドメイン
支援サブドメイン
汎用サブドメイン
コンテキスト
- 25. 25
4章の構成は
• CIOへのインタビュー
• レイヤ
• ヘキサゴナル(ポートとアダプター)アーキテクチャ
• サービス指向
• Representational State Transfer(REST)
• コマンドクエリ責務分離(CQRS)
• イベント駆動アーキテクチャ
• データファブリック及びグリッドベース分散コンピューティング
となっています。
ここでは、さまざまなアーキテクチャでDDDを実現する方法を検討しています。
「4章:アーキテクチャ」の構成
①レイヤ
アーキテクチャ
③ヘキサゴナルアーキテクチャ
(hexagonalは英語で6角形の意味)
②レイヤ
アーキテクチャ(DI使用時)
- 33. 33
6章の構成は
• 値の特徴
• ミニマリズムを考慮した結合
• 標準型を値として表現する
• 値オブジェクトのテスト
• 実装
• 値オブジェクトの永続化
となっています。
モデルから値オブジェクトの特性を
見つけ出す方法について紹介されています。
「6章:値オブジェクト」の構成
※値オブジェクトの例
(IDDD本 C#サンプルソースより)
この図では、前述のPersonエンティティが、
値オブジェクトであるContactInformation
クラスをプロパティに持ちます。
さらに、 ContactInformationクラスが値オ
ブジェクトであるEmailAddressクラス、
Telephoneクラス、PostalAdressクラスをプ
ロパティに持っています。
- 40. 40
■神原さんのスライド「Implementing Domain-Driven Design: Part 1」
http://www.slideshare.net/atsushikambara/implementing-domaindriven-design-part-1
■DDD本
http://www.amazon.co.jp/dp/4798121967
■ IDDD本
http://www.amazon.co.jp/dp/479813161X
■クラウドデザインパターン
http://www.amazon.co.jp/dp/4822277372/
■ Azureクラウドデザインパターン
http://www.amazon.co.jp/dp/4822298337/
■ Developing Core Business Applications with Domain-Driven Design (DDD) and Microsoft .NET
https://channel9.msdn.com/Events/TechEd/NorthAmerica/2013/DEV-B311
参考文献
Editor's Notes
- 1
- 青木は賛辞で挫折した
- カーボーイの説明はわかりやすいようで、そうでもないです。コードまで熟読している人ではないとわからないそうです。