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.2k
ベンチャーでドメイン駆動設計をやるとどうなるか? #genbadeDDD
Tsuyoshi Yasunishi
May 11, 2019
Tweet
Share
More Decks by Tsuyoshi Yasunishi
See All by Tsuyoshi Yasunishi
「ソリューションの重力」を抗い「ビジネスの構造」に目を向けるマネジメント
tsuyok
0
140
2024-07-19 「変化の前に立ちはだかる "見えない構造" を取り扱うには」
tsuyok
0
170
2023-12-12 目標設定の効能と盲点の処方箋
tsuyok
3
940
モデリングツールとモデリングの可能性を考える
tsuyok
3
1.1k
VPoEになって最初にやったこと
tsuyok
9
3.6k
増田亨さんによる 「設計の考え方とやり方」勉強会オープニング
tsuyok
0
970
2019-09-21-growth
tsuyok
0
750
2019-08-31 DDD
tsuyok
2
3.6k
2019-07-09-remote
tsuyok
0
530
Other Decks in Programming
See All in Programming
聞き手から登壇者へ: RubyKaigi2024 LTでの初挑戦が 教えてくれた、可能性の星
mikik0
1
130
現場で役立つモデリング 超入門
masuda220
PRO
15
3.2k
Enabling DevOps and Team Topologies Through Architecture: Architecting for Fast Flow
cer
PRO
0
310
Jakarta EE meets AI
ivargrimstad
0
580
Remix on Hono on Cloudflare Workers
yusukebe
1
280
EventSourcingの理想と現実
wenas
6
2.3k
役立つログに取り組もう
irof
28
9.6k
2024/11/8 関西Kaggler会 2024 #3 / Kaggle Kernel で Gemma 2 × vLLM を動かす。
kohecchi
5
910
What’s New in Compose Multiplatform - A Live Tour (droidcon London 2024)
zsmb
1
470
Snowflake x dbtで作るセキュアでアジャイルなデータ基盤
tsoshiro
2
520
「今のプロジェクトいろいろ大変なんですよ、app/services とかもあって……」/After Kaigi on Rails 2024 LT Night
junk0612
5
2.1k
弊社の「意識チョット低いアーキテクチャ」10選
texmeijin
5
24k
Featured
See All Featured
A designer walks into a library…
pauljervisheath
203
24k
Intergalactic Javascript Robots from Outer Space
tanoku
269
27k
Speed Design
sergeychernyshev
24
610
Bash Introduction
62gerente
608
210k
Being A Developer After 40
akosma
86
590k
Bootstrapping a Software Product
garrettdimon
PRO
305
110k
Building a Modern Day E-commerce SEO Strategy
aleyda
38
6.9k
How to train your dragon (web standard)
notwaldorf
88
5.7k
The Cost Of JavaScript in 2023
addyosmani
45
6.7k
Art, The Web, and Tiny UX
lynnandtonic
297
20k
Measuring & Analyzing Core Web Vitals
bluesmoon
4
120
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
159
15k
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