Slide 1

Slide 1 text

DDDを図に描いてみた January 10, 2020 | #dasshimen 用語とその関連を図にしてみたら、軽量DDD完全に理解した 脱脂綿 ( @anchor_cable )

Slide 2

Slide 2 text

#dddcj 2 About Me 脱脂綿 ( @anchor_cable ) 東京都内に住む脱脂綿(=Twitter名)系エンジニア ● 株式会社ゆめみ ○ サーバーサイドエンジニア ○ 7月1日入社 ● DDD初学者 ○ IDDD読本は一応読んだ / IDDD本はまだ ○ ボトムアップドメイン駆動設計が分かりやすかった ○ nrsさんの本が早く読みたい

Slide 3

Slide 3 text

3 アジェンダ 分かるようになる鍵:単語と図 描いた図を見てみよう DDDが分かり辛いのは何故か 1 2 3 #dddcj

Slide 4

Slide 4 text

DDDが分かり辛いのは何故か 私にはDDDのここが辛い 1

Slide 5

Slide 5 text

5 DDDが分かり辛いのは何故か 知らない単語の洪水 ソフトウェア開発の経験がそもそも少ない身にとって、DDD読本レベルでも情報の洪水 「知らない単語」を1つ理解しようと四苦八苦しているうちに、 別の単語と知らない単語が連携している話をされてしまう #dddcj ドメイン コンテキスト

Slide 6

Slide 6 text

6 DDDが分かり辛いのは何故か 知らない単語の洪水 ソフトウェア開発の経験がそもそも少ない身にとって、DDD読本レベルでも情報の洪水 「知らない単語」を1つ理解しようと四苦八苦しているうちに、 別の単語と知らない単語が連携している話をされてしまう #dddcj ドメイン コンテキスト 値オブジェクト エンティティ

Slide 7

Slide 7 text

7 DDDが分かり辛いのは何故か 知らない単語の洪水 ソフトウェア開発の経験がそもそも少ない身にとって、DDD読本レベルでも情報の洪水 「知らない単語」を1つ理解しようと四苦八苦しているうちに、 別の単語と知らない単語が 連携 している話をされてしまう #dddcj ドメイン コンテキスト 値オブジェクト エンティティ リポジトリ ファクトリ 「あれ?  これ今、何の話してんだっけ...?」

Slide 8

Slide 8 text

分かるようになるまで まあまだ分かってないんですけどね 2

Slide 9

Slide 9 text

9 「ボトムアップドメイン駆動設計」で単語を理解 まず単語に絞って理解 DDDにおける単語が示すものの役割、具体的な実装パターンを理解 DDDに対する理解レベルの飛躍的向上 before : 「分からないもの」と関連する「分からないもの」 after : 関連が不明な「分かるもの」の集まり 改めて感謝! https://nrslib.com/bottomup-ddd/ #dddcj

Slide 10

Slide 10 text

10 図に描いてみた 単語の関連性を理解する 単語は分かったので、主要な単語を並べて互いの関連性を図にしてみた その結果多くの疑問が解消された ・まず「ドメイン」って何なんだろう ・「境界づけられたコンテキスト」、しっくりこない。 ・「集約」がトランザクション管理するもの? また、分かっていない疑問も可視化された ・ドメインイベントとドメインサービスって何が違うの?? #dddcj

Slide 11

Slide 11 text

実際の図 マサカリは優しくお願いします でも歓迎です 3

Slide 12

Slide 12 text

12 ドメイン世界 #dddcj 広義のドメイン(=事業全体) コアドメイン 支援 サブドメイン 汎用 サブドメイン 境界づけられた コンテキスト 境界づけられた コンテキスト 境界づけられた コンテキスト

Slide 13

Slide 13 text

13 コンテキストマップ #dddcj 広義のドメイン(=事業全体) コアドメイン 支援 サブドメイン 汎用 サブドメイン 境界づけられた コンテキスト 境界づけられた コンテキスト 境界づけられた コンテキスト これらの関係を図示する もの =コンテキストマップ

Slide 14

Slide 14 text

14 プログラム世界 #dddcj プログラム世界 コンテキストの投影 境界づけられたコンテキスト毎に存在する モジュール モジュール モジュール モジュール

Slide 15

Slide 15 text

15 モジュール #dddcj モジュール エンティティ 値 オブジェクト 集約 ファクトリ リポジトリ ドメインサービス ドメインイベント

Slide 16

Slide 16 text

16 まとめ 私のDDDの学び方 図に描きだしてみることで関連を理解する 浮かび上がった疑問を解決していく まずは単語だけを理解する 1 2 3 #dddcj

Slide 17

Slide 17 text

17 まとめ 私のDDDの学び方 図に描きだしてみることで関連を理解する 浮かび上がった疑問を解決していく まずは単語だけを理解する 1 2 3 #dddcj ようやく軽量DDD理解した これから実践+マインドの理解やっていく所存。

Slide 18

Slide 18 text

ご清聴ありがとうございました