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
150
「ソリューションの重力」を抗い「ビジネスの構造」に目を向けるマネジメント
tsuyok
0
190
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.1k
2019-09-21-growth
tsuyok
0
840
2019-08-31 DDD
tsuyok
2
3.7k
Other Decks in Programming
See All in Programming
Go製CLIツールをnpmで配布するには
syumai
2
1.1k
オホーツクでコミュニティを立ち上げた理由―地方出身プログラマの挑戦 / TechRAMEN 2025 Conference
lemonade_37
1
430
MySQL9でベクトルカラム登場!PHP×AWSでのAI/類似検索はこう変わる
suguruooki
1
280
「次に何を学べばいいか分からない」あなたへ──若手エンジニアのための学習地図
panda_program
3
710
実践 Dev Containers × Claude Code
touyu
1
130
Comparing decimals in Swift Testing
417_72ki
0
160
DatadogのArchived LogsをSnowflakeで高速に検索する方法(Archive Searchでオワコンにならないことを祈って) / How to search Datadog Archived Logs quickly with Snowflake (hoping Datadog Archive Search doesn’t make this obsolete)
civitaspo
0
110
AIのメモリー
watany
12
1.2k
中級グラフィックス入門~効率的なメッシュレット描画~
projectasura
4
2.4k
Understanding Kotlin Multiplatform
l2hyunwoo
0
250
一人でAIプロダクトを作るならAIにはもっと働いてもらいたい / I want AI to work harder
rkaga
3
330
MCPで実現できる、Webサービス利用体験について
syumai
7
2.4k
Featured
See All Featured
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3k
The Cult of Friendly URLs
andyhume
79
6.5k
Measuring & Analyzing Core Web Vitals
bluesmoon
7
540
Optimizing for Happiness
mojombo
379
70k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
46
7.5k
GraphQLとの向き合い方2022年版
quramy
49
14k
Why Our Code Smells
bkeepers
PRO
337
57k
Optimising Largest Contentful Paint
csswizardry
37
3.4k
Code Reviewing Like a Champion
maltzj
524
40k
Building an army of robots
kneath
306
45k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
283
13k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
35
2.5k
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