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
590
graphed DDD
Dassimen
January 10, 2020
Tweet
Share
More Decks by Dassimen
See All by Dassimen
Write code with "Test First"
anchorcable
0
18
Trying AWS Aurora Serverless.
anchorcable
0
200
Dialogue for Design
anchorcable
1
290
How to manage a good work environment
anchorcable
0
100
TDD is not slowly.
anchorcable
1
520
3日坊主でも勉強したい
anchorcable
5
5.5k
Design It! is good for architect.
anchorcable
0
120
今だからこそ分かる報連相 / How to do Hou/Ren/Sou!
anchorcable
0
650
TDD supports us all the time.
anchorcable
0
310
Other Decks in Technology
See All in Technology
2024年活動報告会(人材育成推進WG・ビジネスサブWG) / 20250114-OIDF-J-EduWG-BizSWG
oidfj
0
240
Reactフレームワークプロダクトを モバイルアプリにして、もっと便利に。 ユーザに価値を届けよう。/React Framework with Capacitor
rdlabo
0
130
【NGK2025S】動物園(PINTO_model_zoo)に遊びに行こう
kazuhitotakahashi
0
250
Azureの開発で辛いところ
re3turn
0
240
あなたの知らないクラフトビールの世界
miura55
0
140
KMP with Crashlytics
sansantech
PRO
0
240
タイミーのデータ活用を支えるdbt Cloud導入とこれから
ttccddtoki
1
230
Cloudflareで実現する AIエージェント ワークフロー基盤
kmd09
0
290
Oracle Base Database Service:サービス概要のご紹介
oracle4engineer
PRO
1
16k
新卒1年目、はじめてのアプリケーションサーバー【IBM WebSphere Liberty】
ktgrryt
0
130
re:Invent2024 KeynoteのAmazon Q Developer考察
yusukeshimizu
1
150
駆け出しリーダーとしての第一歩〜開発チームとの新しい関わり方〜 / Beginning Journey as Team Leader
kaonavi
0
120
Featured
See All Featured
We Have a Design System, Now What?
morganepeng
51
7.3k
Building Applications with DynamoDB
mza
93
6.2k
Art, The Web, and Tiny UX
lynnandtonic
298
20k
Side Projects
sachag
452
42k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
160
15k
Building an army of robots
kneath
302
45k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
3
240
Designing Experiences People Love
moore
139
23k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
GraphQLの誤解/rethinking-graphql
sonatard
68
10k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
330
21k
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理解した これから実践+マインドの理解やっていく所存。
ご清聴ありがとうございました