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
ベンチャーでドメイン駆動設計をやるとどうなるか? #genbadeDDD
Search
Tsuyoshi Yasunishi
May 11, 2019
Programming
3
2.3k
ベンチャーでドメイン駆動設計をやるとどうなるか? #genbadeDDD
Tsuyoshi Yasunishi
May 11, 2019
Tweet
Share
More Decks by Tsuyoshi Yasunishi
See All by Tsuyoshi Yasunishi
2024-12-05 本当に大事なこと(骨)を見出すための構造化という方法
tsuyok
0
170
「ソリューションの重力」を抗い「ビジネスの構造」に目を向けるマネジメント
tsuyok
0
200
2024-07-19 「変化の前に立ちはだかる "見えない構造" を取り扱うには」
tsuyok
0
220
2023-12-12 目標設定の効能と盲点の処方箋
tsuyok
3
1.1k
モデリングツールとモデリングの可能性を考える
tsuyok
3
1.2k
VPoEになって最初にやったこと
tsuyok
9
3.8k
増田亨さんによる 「設計の考え方とやり方」勉強会オープニング
tsuyok
0
1.2k
2019-09-21-growth
tsuyok
0
860
2019-08-31 DDD
tsuyok
2
3.8k
Other Decks in Programming
See All in Programming
釣り地図SNSにおける有料機能の実装
nokonoko1203
0
200
実践Claude Code:20の失敗から学ぶAIペアプログラミング
takedatakashi
18
8.3k
デミカツ切り抜きで面倒くさいことはPythonにやらせよう
aokswork3
0
260
バッチ処理を「状態の記録」から「事実の記録」へ
panda728
PRO
0
190
品質ワークショップをやってみた
nealle
0
620
なぜGoのジェネリクスはこの形なのか? - Featherweight Goが明かす設計の核心
qualiarts
0
250
CSC509 Lecture 06
javiergs
PRO
0
270
PHPに関数型の魂を宿す〜PHP 8.5 で実現する堅牢なコードとは〜 #phpcon_hiroshima / phpcon-hiroshima-2025
shogogg
1
330
monorepo の Go テストをはやくした〜い!~最小の依存解決への道のり~ / faster-testing-of-monorepos
convto
2
530
エンジニアインターン「Treasure」とHonoの2年、そして未来へ / Our Journey with Hono Two Years at Treasure and Beyond
carta_engineering
0
420
オープンソースソフトウェアへの解像度🔬
utam0k
17
3.1k
TransformerからMCPまで(現代AIを理解するための羅針盤)
mickey_kubo
7
4.9k
Featured
See All Featured
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
359
30k
Large-scale JavaScript Application Architecture
addyosmani
514
110k
Designing Experiences People Love
moore
142
24k
Why Our Code Smells
bkeepers
PRO
340
57k
Typedesign – Prime Four
hannesfritz
42
2.8k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.7k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
10
610
How to Ace a Technical Interview
jacobian
280
24k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
22k
The World Runs on Bad Software
bkeepers
PRO
72
11k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
657
61k
How GitHub (no longer) Works
holman
315
140k
Transcript
ϕϯνϟʔͰ υϝΠϯۦಈઃܭΛΔͱ Ͳ͏ͳΔ͔ʁ ʙ1ZUIPOͰܕʹશʹͯ͠Έͨʙ 2019.05.11 גࣜձࣾνʔϜϘοΫε ҆ ߶
νʔϜϘοΫεͬͯʁ
None
None
৽αʔϏεͱػցֶशʹΑΔੳγεςϜ։ൃத
ձࣾͷ࣌എܠ
ˠ࣌ ʢۀʣ
ࣾһਓ
ҰਓͰ࡞ͬͨ
͘͞Β714্ʹ1ZUIPO
ࣄۀ͕͏·͘ߦ͖ͩͨ͠
ˠ࣌ ʢʣ
ೖࣾ
1ZUIPO͔ ͣͬͱଓ͘ αʔϏεʹ͍ͨ͠ͳ͊
Ϣʔβཧ͕྆ํʹ͋Δ͜ͱʹؾͮ͘
ϢʔβཧΛ͠Α͏
4QSJOH#PPU ,PUMJOͰ࡞ͬ ͨ
͜ΕʹՃ͑ͯ৽αʔϏεΛ࡞Ζ͏ʂ
1ZUIPOͬͨ͜ͱແ͍͠ ڷʹೖΕڷʹै͑ ·ͣͬͯΈΑ͏
͕͢͞ʹ.7$͚͖͍ͩͭ ·ͣϨΠϠʔυΞʔΩςΫνϟ ʢͱ͍͏໊ͷ͚͚ͨͩʣ
6*ʢ1SFTFOUBUJPOʣ "QQMJDBUJPO %PNBJO *OGSBTUSVDUVSF ˔ ϞσϦϯά͋·Γ͍ͯ͠ͳ͍ ˔ υϝΠϯಠཱ͍ͯ͠ͳ͍ʢଞͷʹґ ଘ͍ͯ͠Δʣ
ϨΠϠʔΛ͚Έͯ (PPEʂ %#"1*ΞΫηεͷॲཧΛͲ͜ʹॻ͚͍͍͔͕Θ͔Δ B ଞͷਓ͕ॻ͍ͨίʔυͰͲ͜ʹॻ͍ͯ͋Δ͔Θ͔Δ 03ϚούʔͷϞσϧ͔ΒϏδωεϩδοΫഉআͰ͖ͨ #BEʂ
ϏδωεϩδοΫͷډॴ͕ᐆດɻॻ͖ํਓػೳʹΑͬͯมΘΔɻ B υϝΠϯϞσϧශ݂ঢ়ଶ ͦ͏ͳΔͱ݁Ռతʹ$POUSPMMFS͕ଠΓɺ4FSWJDFͱ͍͏ಾͷDMBTT͕Ͱ͖࢝Ί Δ
த్͋·ΓޮՌ͕ͳ͍ ʢ࣮ײʣ
υϝΠϯϞσϦϯάΛ͍ͨ͠ ΔͳΒܕ͕΄͍͠ͳ͊ʜ
("&ͷ1ZUIPOΛ ʹ্͛ͨΑʂ $50߱ྟ
͜Ε5ZQF)JOU͕ ͑Δ͡Όͳ͍͔ʜ
1ZUIPOͰܕʹ ࣮͢ݧͯ͠ΈΑ͏Αʂ ͓લͦΕͩͬͨΒ +BWBͰ͑͑Μʂ https://www.irasutoya.com/2017/08/blog-post_54.html
؟ͷલʹ͋Δͷ1ZUIPOͰ͋Δ 1ZUIPOͰܕʹͯ͠ΈΑ͏ʂ ʢ࣮ڵຯຊҐʣ
جຊܗ
引数の型指定 戻り値の型指定 コメントで型指定
جຊతʹ5ZQF)JOU ͜Ε͚ͩͰ0, ʢ(FOFSJDTͱ͔ඞཁແ͠ʣ
*%&
1ZDIBSNʢ*OUFMMJK*%&"ʣ ͜ͷิ͕ͳ͍ͱແཧ
NZQZ ܕΛνΣοΫͯ͘͠Ε·͢ 1ZDIBSNʹઃఆ͢ΔͱΑΓྑ͍
little_hand_s さんのqiitaより引用 https://qiita.com/little_hand_s/items/ebb4284afeea0e8cc752 υϝΠϯΛ ಠཱͤ͞Δ ʲج४ʳ υϝΠϯʹ ଞͷͷJNQPSUจ͕ແ͍
little_hand_s さんのqiitaより引用 https://qiita.com/little_hand_s/items/ebb4284afeea0e8cc752 "QQMJDBUJPO4FSWJDF͔ Β *OGSBTUSVDUVSF ʢ%#ΞΫηεʣ Λݺͼ͍ͨ Ͱҹ͕ٯʹͳΔ
ͦ͜Ͱ%*
*OUFSGBDF͕ແ͍ͷͰɺܧঝͰදݱ
ɾܕΛCJOE͢Δ ɾ%*Ͱ"QQMJDBUJPO4FSWJDFΛJOKFDU͢Δ ɾ"QQMJDBUJPO4FSWJDFͰ*OUFSGBDFͷܕͰݺͼग़͢
little_hand_s さんのqiitaより引用 https://qiita.com/little_hand_s/items/ebb4284afeea0e8cc752 ͍͑ʔ͍ ґଘ͕ؔ ٯ͍ͨʂ
ઃܭͯ͠ΈΑ͏
खॱ ᶃॳظͷυϝΠϯϞσϧΛ࡞Δ ໊લͱৼΔ͍Λநग़ ίʔυʹམͱͯ͠ΈΔ ϦϑΝΫλϦϯά͍ͯ͘͠ ᶄυϝΠϯҎ֎Λ࡞͍ͬͯ͘
ᶃॳظͷυϝΠϯϞσϧΛ࡞Δ
Ϣʔεέʔε༷Λ༻ҙͯ͠
None
ᝦͰग़͢ ˞ΠϝʔδͰ͢
ॳظͷυϝΠϯϞσϧΛ࣮ͯ͠ΈΔ 7BMVF0CKFDUΛ࡞ͬͯΈΔ ͔͜͜Β࣮։࢝ ˞ύοέʔδҠಈΛߟྀͯ͠DMBTT͝ͱʹϑΝ ΠϧΛ͚ͯΈͨɻ͕ɺ͜Εࣦഊɻ
"QQMJDBUJPO *OGSBTUSVDUVSF σʔλϞσϧઃܭ Λ࡞͍ͬͯ͘
6*ʢ1SFTFOUBUJPOʣ "QQMJDBUJPO %PNBJO *OGSBTUSVDUVSF
little_hand_s さんのqiitaより引用 https://qiita.com/little_hand_s/items/ebb4284afeea0e8cc752 υϝΠϯΛ ಠཱͤ͞Δ ʲج४ʳ υϝΠϯʹ ଞͷͷJNQPSUจ͕ແ͍
ϙΠϯτ
ᶃݱ࣮ͷݴ༿Λͦͷ·· ίʔυʹམͱ͢ ʢϢϏΩλεݴޠʣ
༷ॻ͚ͩͰͳ͘ɺ ීஈ͍ͬͯΔݴ༿ʹײΛߴΊΔ
ᶄσʔλϞσϧ υϝΠϯϞσϧͷޙʹઃܭ ʢυϝΠϯϞσϧ͕σʔλϞσϧʹӨڹ͞ΕΔͷ Ͱʣ
ᶅϞσϧΛҭͯΔ
いったり来たり 俯瞰 詳細
Ϟσϧʹ͑ͳ͍ɻ
ͬͯΈͯ Ͳ͏͔ͩͬͨʁ
ͳ͔ͥͱ͍͏ͱɺߏΛઌʹ࡞ΔͷͰ ϩδοΫʹͨͲΓண͘ͷ͕࠷ޙͷํͰ Ͳ͔͠͞Λײͨ͡ͷͰͳ͔Ζ͏͔ ᶃ࠷ॳগ͠ख͕͔͔ؒΔ ײ͕͢͡Δ ࣾൺ
ᶄͲ͜ʹԿ͕͋Δ͔͕ Θ͔Γ͍͢ ଞਓɺաڈͷ͕ࣗॻ͍ͨίʔυɺͲͪΒͰ ߏͱ໊લ͕໌֬ͳͷͰɺͨͲΓ͍͢
ᶅมߋ͕҆৺ ࠷ߴʹؾ͕͍͍࣋ͪɻ ݁ߏେ͖ͳमਖ਼҆৺ײ͕͋Δ
ᶆ5ZQF)JOUͰͦͦ͜͜େৎ ܕ͕͋Δݴޠ͑Αɺͱ͍͏͕ͩɺ ʢͩͬͯͷલʹ1ZUIPO͕͋ͬͨΜͩͷʣ 1ZUIPOͰ*%&͕ิͯ͘͠ΕΔͷͰॆͰ͖Δ 1)1Ͱ͍͚ΔͷͰͳ͍ͩΖ͏͔
ᶇ։ൃʹ౷Ұੑ͕ੜ·ΕΔ υϝΠϯϞσϧΛআ͘ͱ͋ΔఔɺܗͰ͖Δ ϞσϧͷձΛଓ͚Ε ίϛϡχέʔγϣϯίετ͕গͳ͍
ᶈDMBTT͝ͱͳͲ ࡉ͔͍ςετ͕ඞཁͳͦ͞͏ ܕ͕୲อͯ͘͠ΕΔ ઃܭ͕͔ͬ͠Γ͍ͯ͠Εɺෳࡶͳܭࢉ "QQMJDBUJPO4FSWJDF$POUSPMMFS͝ͱͰ୲อ͍͢͠
ࠓޙͷ՝
ᶃͦ͜·ͰϞσϧ͕ҭͬͯͳ͍ ͬͱϦϑΝΫλϦϯά͠ͳ͚Ε
ᶄΓ͗ͨ͢ͱ͜Ζʁ DMBTT͝ͱʹϑΝΠϧΛ͚ͨͷࣦഊɻ͍͔ͭ͢ ʢ*OUFMMJK*%&"Ͱมߋ͕͘ͳͬͨʜʣ ͋Εɺଞʹແ͍ͳʁʁʁ
ᶅ1ZUIPOΤϯδχΞ͕ೖͬͨ Β ࠔ͢ΔͷͰͳ͔Ζ͏͔ ͤΘ͔Δͱ৴͍ͯ͡Δ
ࢥͬͨ͜ͱ
ˠˠˠˠ㱣
ˠˠˠˠ㱣 探そう 探しつつ 伸ばそう もっと 伸ばそう もっともっと 伸ばそう
複雑度(変更コスト)が指数関数的に上がっていく ˠˠˠˠ㱣 サクッと 作って検証 人が増えてきた なんか開発が 遅い感じがする あぁ辛い 作り直したい 厳しい
辛すぎる もう無理だ…
ˠˠˠˠ㱣 ここに不可逆な 境界線が????
ˠˠˠˠ㱣 ここで 大幅に設計をしなおすことが 大事なのではないか
͜Ε͕ͦͷޙͷมߋίετΛ େ෯ʹԼ͛Δ
ここが最も価値がある
None
৽͍͠ͷΛՃͭͭ͠ ෳࡶͳͷΛཧ͠ଓ͚Δ
ෳࡶͳͷΛෳࡶͳ··ѻ͏ ෳࡶͳͷ͕୯७ʹͳΔຐ๏ ͳ͍
ͦͷͱ͖ʹυϝΠϯۦಈઃܭΛ બ͢Δͱྑ͍ͱࢥ͏
ؒΛେେืूதͰ͢ʂ ˔ ෭ۀɾϑϦʔϥϯεΤϯδχΞืूʂ ˓ ࣌ؒॴࣄ༰ࣗ༝ ˓ ݁Ռతʹࣄ͠ͳ͍͍ͯ͘ͷͰɺҰ୴4MBDLʹೖΖ͏ʂ ˓ 1ZUIPOɺ7VFKTɺ,PUMJOɺJ04ͳͲ ˔
ΤϯδχΞࣾһืूʂ ˓ ਓͷʹڵຯ͕͋Δํ ˓ ಇ͘ॴɺ࣌ؒࣗ༝ ˓ ձٞใΦʔϓϯ ˓ ෭ۀࣗ༝ ͓ؾܰʹ͝࿈བྷ͍ͩ͘͞ʂ IUUQTXXXXBOUFEMZDPNQSPKFDUT