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
ドメイン駆動設計に再々々々々入門した
Search
code-hato
December 05, 2025
100
0
Share
ドメイン駆動設計に再々々々々入門した
code-hato
December 05, 2025
More Decks by code-hato
See All by code-hato
意識低い系エンジニアの “成長”戦略
hashimoto_naoki
0
13
テスト
hashimoto_naoki
0
15
なぜ私は個人開発で失敗したのか?
hashimoto_naoki
0
30
Featured
See All Featured
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
380
Game over? The fight for quality and originality in the time of robots
wayneb77
1
170
Statistics for Hackers
jakevdp
799
230k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
Optimising Largest Contentful Paint
csswizardry
37
3.7k
How Software Deployment tools have changed in the past 20 years
geshan
0
33k
Design in an AI World
tapps
1
210
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.2k
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
110
Designing for Timeless Needs
cassininazir
1
220
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.8k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Transcript
ドメイン駆動設計に 再々々々々入門した
自己紹介 ほうれん草ボンバー フロントエンドエンジニア ひまぷろで最初のゲスト! 最近はパフェ作りにハマっている
DDD、むずくね?
“入門書”をたくさん読むもどれも途中で挫折・・・
ドメイン 値オブジェクト わからない単語・概念が多すぎる エンティティ 集約 境界づけらた コンテキスト DIP
プログラミング言語の壁がある サンプルコードがJavaで書かれている →TypeScriptではclass構文をあまり使わない サンプルコードが長くて読みずらい 普段の業務とかけ離れているコードだからイメージがわかない
俺の理解力の無さ なめんじゃねーぞ!!
エリック・エヴァンズに難しい コードでいじめられたよ〜
「小学5年生ののび太でもわかるように 説明してください」 魔法のプロンプト
理 解 し て あ げ な い だ か
ら
注意事項 「わかりやすさ」を優先しているため、 正確性は犠牲にしています コード例は一切使っていません 表層の大雑把な理解です
ドメイン駆動設計 再々々々々入門 ドメインとは? サッカーでいう、 「ルール」のこと 手を使ってはいけない(キーパー以外) 1チーム11人 オフサイドがある ゴールしたら1点 ・・・
「この世界ではこうするよ」っていう約束ごと
ドメイン駆動設計 再々々々々入門 値オブジェクトとエンティティ 値オブジェクト 1つ1つを区別しなければいけない存在 サッカー選手 同じ名前の人が2人いても、背番号が 違えば別人 エンティティ 中身(値)が同じなら、
同じものとして扱ってよい存在 お金(1,00円玉はどれも100円) サッカーボール(サイズが同じであ れば、どれでも良い)
ドメイン駆動設計 再々々々々入門 集約(Aggregate) サッカーでいう、 「試合」のこと 試合には以下のもの(オブジェクト)の集合 チーム 選手 ゴール ボール
複数のものを集めたまとまり
ドメイン駆動設計 再々々々々入門 DIP(依存性逆転の原則) 〈悪い例〉メッシがいるから、ゴールキーパー2人にする 「ルールを先に決めて、人がルールに合わせるようにしようね」という考え方 〈良い例〉メッシがいるから、4人マークをつける 一人の選手によって、サッカーのルールが変更されている 一人の選手によって、サッカーの戦術が変更されている(ルールは変更されていない)
わかりやすく説明してくれ ありがとう・・・
ドメイン駆動設計 再々々々々入門 ドメイン駆動設計を学ぶ意味は? 初級エンジニアから中級エンジニアへの 考え方を変えるきっかけとなる
ドメイン駆動設計 再々々々々入門 ドメイン駆動設計を学ぶ意味は? How(どのように?)ではなく、 What(何?)で考える
画面デザインはどうする? FW・ライブラリーの選定はどうする? DB設計はどうする? どういうふうに実装する? How?
あなたの会社は何を作っていますか? そのサービスの特徴は何ですか? 他の類似サービスと比べて、そのサービスの強み何ですか? 今後、機能追加するとしたら何が必要ですか? What?
ドメイン駆動設計 再々々々々入門
ドメイン駆動設計 再々々々々入門 技術領域 ビジネス領域 ドメイン駆動 How? What?
ドメイン駆動設計 再々々々々入門 まとめ ドメイン駆動設計は難解な概念が多くとっつきにくい 「ビジネスをもっと良く理解しよう!」という考え方 HowではなくWhatに注目する 中級エンジニアになるために必要な考え方