$30 off During Our Annual Pro Sale. View Details »
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
230
2023-12-12 目標設定の効能と盲点の処方箋
tsuyok
3
1.2k
モデリングツールとモデリングの可能性を考える
tsuyok
3
1.2k
VPoEになって最初にやったこと
tsuyok
9
3.9k
増田亨さんによる 「設計の考え方とやり方」勉強会オープニング
tsuyok
0
1.2k
2019-09-21-growth
tsuyok
0
870
2019-08-31 DDD
tsuyok
2
3.8k
Other Decks in Programming
See All in Programming
実は歴史的なアップデートだと思う AWS Interconnect - multicloud
maroon1st
0
210
モデル駆動設計をやってみようワークショップ開催報告(Modeling Forum2025) / model driven design workshop report
haru860
0
270
Findy AI+の開発、運用におけるMCP活用事例
starfish719
0
1.2k
「コードは上から下へ読むのが一番」と思った時に、思い出してほしい話
panda728
PRO
38
26k
バックエンドエンジニアによる Amebaブログ K8s 基盤への CronJobの導入・運用経験
sunabig
0
160
JETLS.jl ─ A New Language Server for Julia
abap34
1
410
Claude Codeの「Compacting Conversation」を体感50%減! CLAUDE.md + 8 Skills で挑むコンテキスト管理術
kmurahama
0
320
【CA.ai #3】Google ADKを活用したAI Agent開発と運用知見
harappa80
0
320
大規模Cloud Native環境におけるFalcoの運用
owlinux1000
0
120
AIコーディングエージェント(Manus)
kondai24
0
190
これだけで丸わかり!LangChain v1.0 アップデートまとめ
os1ma
6
1.9k
複数人でのCLI/Infrastructure as Codeの暮らしを良くする
shmokmt
5
2.3k
Featured
See All Featured
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.6k
Documentation Writing (for coders)
carmenintech
77
5.2k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
Build your cross-platform service in a week with App Engine
jlugia
234
18k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
How STYLIGHT went responsive
nonsquared
100
6k
KATA
mclloyd
PRO
33
15k
Become a Pro
speakerdeck
PRO
31
5.7k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
196
70k
Designing for Performance
lara
610
69k
The Cost Of JavaScript in 2023
addyosmani
55
9.4k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
359
30k
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