Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
graphed DDD
Search
Dassimen
January 10, 2020
Technology
1
560
graphed DDD
Dassimen
January 10, 2020
Tweet
Share
More Decks by Dassimen
See All by Dassimen
Trying AWS Aurora Serverless.
anchorcable
0
200
Dialogue for Design
anchorcable
1
260
How to manage a good work environment
anchorcable
0
95
TDD is not slowly.
anchorcable
1
440
3日坊主でも勉強したい
anchorcable
5
5.2k
Design It! is good for architect.
anchorcable
0
110
今だからこそ分かる報連相 / How to do Hou/Ren/Sou!
anchorcable
0
550
TDD supports us all the time.
anchorcable
0
260
I read Tokumaru book on ABD.
anchorcable
1
91
Other Decks in Technology
See All in Technology
DMM.com アルファ室採用案内資料
hsugita
1
150
require(ESM)とECMAScript仕様
uhyo
3
720
Java EE/Jakarta EEの現状と将来―クラウドネイティブ時代にJava EEは対応できるのか?―
takakiyo
1
160
プラットフォームってつくることより計測することが重要なんじゃないかという話 / Platform Engineering Meetup #8
taishin
1
370
ChatworkのSRE部って実は 半分くらいPlatform Engineering部かもしれない
saramune
0
160
ChatGPT for IT Service Management (IT Pro)
dahatake
7
1.6k
家族アルバム みてねにおけるGrafana活用術 / Grafana Meetup Japan Vol.1 LT
isaoshimizu
1
750
Google Cloud Next '24 Recap(Cloud Run/k8s)
mokocm
0
230
APIファーストなプロダクトマネジメントの実践 〜SaaSus Platformでの例〜 / "Practicing API-First Product Management - An Example with SaaSus Platform
oztick139
0
110
「スニダン」開発組織の構造に込めた意図 ~組織作りはパッションや政治ではない!~
rinchsan
3
570
現代CSSフレームワークの内部実装とその仕組み
poteboy
7
3.6k
ServiceNow Knowledge 24の歩き方 EYストラテジー・アンド・コンサルティング
manarobot
0
200
Featured
See All Featured
Debugging Ruby Performance
tmm1
70
11k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
501
140k
Making the Leap to Tech Lead
cromwellryan
124
8.5k
Robots, Beer and Maslow
schacon
PRO
155
7.9k
ParisWeb 2013: Learning to Love: Crash Course in Emotional UX Design
dotmariusz
104
6.6k
Become a Pro
speakerdeck
PRO
11
4.5k
Intergalactic Javascript Robots from Outer Space
tanoku
266
26k
Designing for humans not robots
tammielis
248
25k
It's Worth the Effort
3n
180
27k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
125
32k
Reflections from 52 weeks, 52 projects
jeffersonlam
345
19k
The World Runs on Bad Software
bkeepers
PRO
61
6.7k
Transcript
DDDを図に描いてみた January 10, 2020 | #dasshimen 用語とその関連を図にしてみたら、軽量DDD完全に理解した 脱脂綿 ( @anchor_cable
)
#dddcj 2 About Me 脱脂綿 ( @anchor_cable ) 東京都内に住む脱脂綿(=Twitter名)系エンジニア •
株式会社ゆめみ ◦ サーバーサイドエンジニア ◦ 7月1日入社 • DDD初学者 ◦ IDDD読本は一応読んだ / IDDD本はまだ ◦ ボトムアップドメイン駆動設計が分かりやすかった ◦ nrsさんの本が早く読みたい
3 アジェンダ 分かるようになる鍵:単語と図 描いた図を見てみよう DDDが分かり辛いのは何故か 1 2 3 #dddcj
DDDが分かり辛いのは何故か 私にはDDDのここが辛い 1
5 DDDが分かり辛いのは何故か 知らない単語の洪水 ソフトウェア開発の経験がそもそも少ない身にとって、DDD読本レベルでも情報の洪水 「知らない単語」を1つ理解しようと四苦八苦しているうちに、 別の単語と知らない単語が連携している話をされてしまう #dddcj ドメイン コンテキスト
6 DDDが分かり辛いのは何故か 知らない単語の洪水 ソフトウェア開発の経験がそもそも少ない身にとって、DDD読本レベルでも情報の洪水 「知らない単語」を1つ理解しようと四苦八苦しているうちに、 別の単語と知らない単語が連携している話をされてしまう #dddcj ドメイン コンテキスト 値オブジェクト
エンティティ
7 DDDが分かり辛いのは何故か 知らない単語の洪水 ソフトウェア開発の経験がそもそも少ない身にとって、DDD読本レベルでも情報の洪水 「知らない単語」を1つ理解しようと四苦八苦しているうちに、 別の単語と知らない単語が 連携 している話をされてしまう #dddcj ドメイン
コンテキスト 値オブジェクト エンティティ リポジトリ ファクトリ 「あれ? これ今、何の話してんだっけ...?」
分かるようになるまで まあまだ分かってないんですけどね 2
9 「ボトムアップドメイン駆動設計」で単語を理解 まず単語に絞って理解 DDDにおける単語が示すものの役割、具体的な実装パターンを理解 DDDに対する理解レベルの飛躍的向上 before : 「分からないもの」と関連する「分からないもの」 after :
関連が不明な「分かるもの」の集まり 改めて感謝! https://nrslib.com/bottomup-ddd/ #dddcj
10 図に描いてみた 単語の関連性を理解する 単語は分かったので、主要な単語を並べて互いの関連性を図にしてみた その結果多くの疑問が解消された ・まず「ドメイン」って何なんだろう ・「境界づけられたコンテキスト」、しっくりこない。 ・「集約」がトランザクション管理するもの? また、分かっていない疑問も可視化された ・ドメインイベントとドメインサービスって何が違うの??
#dddcj
実際の図 マサカリは優しくお願いします でも歓迎です 3
12 ドメイン世界 #dddcj 広義のドメイン(=事業全体) コアドメイン 支援 サブドメイン 汎用 サブドメイン 境界づけられた
コンテキスト 境界づけられた コンテキスト 境界づけられた コンテキスト
13 コンテキストマップ #dddcj 広義のドメイン(=事業全体) コアドメイン 支援 サブドメイン 汎用 サブドメイン 境界づけられた
コンテキスト 境界づけられた コンテキスト 境界づけられた コンテキスト これらの関係を図示する もの =コンテキストマップ
14 プログラム世界 #dddcj プログラム世界 コンテキストの投影 境界づけられたコンテキスト毎に存在する モジュール モジュール モジュール モジュール
15 モジュール #dddcj モジュール エンティティ 値 オブジェクト 集約 ファクトリ リポジトリ
ドメインサービス ドメインイベント
16 まとめ 私のDDDの学び方 図に描きだしてみることで関連を理解する 浮かび上がった疑問を解決していく まずは単語だけを理解する 1 2 3 #dddcj
17 まとめ 私のDDDの学び方 図に描きだしてみることで関連を理解する 浮かび上がった疑問を解決していく まずは単語だけを理解する 1 2 3 #dddcj
ようやく軽量DDD理解した これから実践+マインドの理解やっていく所存。
ご清聴ありがとうございました