Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
ドメイン駆動設計に再々々々々入門した
Search
code-hato
December 05, 2025
140
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ドメイン駆動設計に再々々々々入門した
code-hato
December 05, 2025
More Decks by code-hato
See All by code-hato
意識低い系エンジニアの “成長”戦略
hashimoto_naoki
0
25
テスト
hashimoto_naoki
0
23
なぜ私は個人開発で失敗したのか?
hashimoto_naoki
0
39
Featured
See All Featured
Docker and Python
trallard
47
4.2k
Chasing Engaging Ingredients in Design
codingconduct
0
300
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
490
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
Making the Leap to Tech Lead
cromwellryan
135
10k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
56
3.5k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.5k
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
520
Reality Check: Gamification 10 Years Later
codingconduct
0
2.3k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
232
55k
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.6k
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に注目する 中級エンジニアになるために必要な考え方