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
120
0
Share
ドメイン駆動設計に再々々々々入門した
code-hato
December 05, 2025
More Decks by code-hato
See All by code-hato
意識低い系エンジニアの “成長”戦略
hashimoto_naoki
0
16
テスト
hashimoto_naoki
0
17
なぜ私は個人開発で失敗したのか?
hashimoto_naoki
0
32
Featured
See All Featured
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
0
1.6k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
4k
Java REST API Framework Comparison - PWX 2021
mraible
34
9.3k
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
130
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
170
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
130
Fashionably flexible responsive web design (full day workshop)
malarkey
408
66k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
300
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
2
840
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
1
250
My Coaching Mixtape
mlcsv
0
140
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に注目する 中級エンジニアになるために必要な考え方