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
Go Tanaka
September 08, 2016
Programming
1
400
ドメイン駆動設計 第一部まとめ
エリックエヴァンスのDDD本の第一部のまとめ(感想)
Go Tanaka
September 08, 2016
Tweet
Share
More Decks by Go Tanaka
See All by Go Tanaka
事業を理解するために勉強したこと
tan_go238
0
1.2k
RDRAと業務と私
tan_go238
6
5.1k
エンジニアのための情報設計入門
tan_go238
10
7.8k
JVM in Action
tan_go238
1
620
Ordinary Object Pointer in JVM
tan_go238
5
6k
フロントエンドの基礎知識
tan_go238
28
9.9k
Reactive Microservices Architecture
tan_go238
0
240
たぶん便利なパターンマッチ
tan_go238
0
300
Other Decks in Programming
See All in Programming
ドメインモデリングにおける抽象の役割、tagless-finalによるDSL構築、そして型安全な最適化
knih
11
2k
Using AI Tools Around Software Development
inouehi
0
1.2k
Go Modules: From Basics to Beyond / Go Modulesの基本とその先へ
kuro_kurorrr
0
120
Java on Azure で LangGraph!
kohei3110
0
160
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
41
28k
GoのWebAssembly活用パターン紹介
syumai
3
10k
XSLTで作るBrainfuck処理系
makki_d
0
210
複数アプリケーションを育てていくための共通化戦略
irof
10
4k
AIエージェントはこう育てる - GitHub Copilot Agentとチームの共進化サイクル
koboriakira
0
210
つよそうにふるまい、つよい成果を出すのなら、つよいのかもしれない
irof
1
300
カクヨムAndroidアプリのリブート
numeroanddev
0
430
Webからモバイルへ Vue.js × Capacitor 活用事例
naokihaba
0
740
Featured
See All Featured
4 Signs Your Business is Dying
shpigford
184
22k
Designing for humans not robots
tammielis
253
25k
Raft: Consensus for Rubyists
vanstee
140
7k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Become a Pro
speakerdeck
PRO
28
5.4k
Agile that works and the tools we love
rasmusluckow
329
21k
How to Ace a Technical Interview
jacobian
277
23k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
45
7.4k
Speed Design
sergeychernyshev
31
1k
A Tale of Four Properties
chriscoyier
160
23k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
Transcript
υϝΠϯۦಈઃܭ ୈ1෦·ͱΊ
ϞσϧͱԿ͔ • ໘ͷΛղܾ͢Δ্Ͱؔ࿈͢Δଆ໘ΛநԽ͠ɺɹ ͦΕҎ֎ͷཁૉΛແࢹͨ͠ݱ࣮ʹର͢Δͻͱͭͷղऍ • ιϑτΣΞͱ • ϢʔβͷԿΒ͔ͷ׆ಈؔ৺ࣄͱ͕ؔ͋Δ • Ϣʔβ͕ϓϩάϥϜΛద༻͢ΔྖҬ͕ιϑτΣΞ
ͷυϝΠϯ
ϞσϧͱԿ͔ ݱ࣮ੈք ׆ಈɾؔ৺ࣄ ׆ಈɾؔ৺ࣄ Ϟσϧ Ϟσϧ ؆ུԽɾநԽ ιϑτΣΞ ͷྖҬ
ϞσϦϯά • υϝΠϯϞσϦϯάͱϞσϧΛͰ͖Δ͚ͩ ʮ࣮ࣸతʹʯ࡞͢Δ͜ͱͰͳ͍ • ͋Δతʹैͬͯݱ࣮ͷ֓ཁΛදݱ͢Δ • ͜ͷ࡞ۀΛϞσϦϯάͱݺͿ
ͲͷΑ͏ʹϞσϧΛબ͢Δ͔ 1. Ϟσϧͱઃܭͷ֩৺͕૬ޓʹؔ࿈͠߹͏͜ͱ 2. νʔϜϝϯόશһ͕༻͢Δڞ௨ͷݴޠج൫Ͱ ͋Δ͜ͱ 3. ৠཹ͞ΕͨࣝͰ͋Δ͜ͱ
Ͳ͔͜Β࢝ΊΔ͔ʁ • ࣝΛ͔Έࡅ͘ͱ͜Ζ͔Β ”ΫϥΠΞϯτυϝΠϯΤΩεύʔτͱҰॹʹ͠߹͍ͳ͕Β ΦϒδΣΫτͷ૬ޓ࡞༻ਤΛඳ͍ͨΓͨ͠” ”༻ޠ๏ʹ͋ͬͨෆҰக͍͋·͍͞ɺٕज़తͳݟղͷ૬ҧΛҰ ॹʹͳͬͯղֶܾ͠ΜͰ͍ͬͨ” “ͦͷ݁ՌɺࣄΛΑΓݫີʹໃ६ͳ͘આ໌Ͱ͖ΔΑ͏ʹͳͬͨ"
ܧଓతֶश • ܧଓతֶश ෆՄܽ • υϝΠϯϞσϧͷεΩϧ • ٕज़తͳࣝͷ্ • ͍·औΓΜͰ͍Δ۩ମతͳυϝΠϯʹ͍ͭ
ֶͯश͢Δ
ϢϏΩλεݴޠ • ڞ௨ݴޠͷͳ͍ϓϩδΣΫτ • ʑͷٞͰ͏༻ޠ๏͕ɺίʔυʹຒΊࠐ·Ε Δ༻ޠ๏͔ΒΓ͞ΕΔ • ௨༁͕ඞཁʹͳΔ • Ϟσϧͷ֓೦Λࠞཚͤͯ͞͠·͏
• ίʔυͷഁյతͳϦϑΝΫλϦϯάʹͭͳ͕Δ
ϢϏΩλεݴޠ • ։ൃऀͷؒͰ༻͞Εͳ͚ΕͳΒͳ͍ • ݴޠΛ͏্Ͱ͕͋ΕɺΘΓͷදݱΛ༻͍ ࣮ͯݧ͢Δ • ݴޠʹର͢ΔมߋɺυϝΠϯϞσϧʹର͢Δมߋ • ίʔυͷΫϥεϝιουͷ໊લΛม͑ͨΓ;
Δ·͍Λมߋͨ͠Γ͢Δ͜ͱʹͭͳ͕Δ
υΩϡϝϯτͱਤ • ϞσϧਤͰͳ͍ • ਤ͕දݱ͍ͯ͠Δͷߟ͑ํͷࠎ֨ • ઃܭʹؔ͢Δຊ࣭తͳৄࡉɺίʔυʹ͓͍ͯͱΒ͑ΒΕΔ • υΩϡϝϯτίʔυձͷදݱΛิΘͳ͚Ε͍͚ͳ͍ •
ίʔυͰදݱͰ͖͍ͯΔͷΛυΩϡϝϯτͰ͢Δ͖Ͱ ͳ͍ • υΩϡϝϯτৗʹ࠷৽ͰϓϩδΣΫτͷ׆ಈʹऔΓࠐ·Ε͍ͯͳ ͚ΕͳΒͳ͍ʢϓϩδΣΫτͷ׆ಈͷҰ෦Ͱ͋Δ͜ͱʣ
Ϟσϧͱ࣮Λ݁ͼ͚ͭΔ • Ϟσϧۦಈઃܭ • ڧݻͳϢϏΩλεݴޠΛࢧ͑Δ͜ͱ • υϝΠϯͱ࣮྆ํͷతʹ͑Δ୯ҰͷϞσϧΛཁٻ͢Δ͜ͱ • ΦϒδΣΫτࢦͷΑ͏ͳϞσϦϯάύϥμΠϜΛࢧ͑ΔιϑτΣ Ξ։ൃͷͨΊͷπʔϧͱݴޠ͕ඞཁ
• ίʔυΛ࡞͢Δਓ͕ϞσϧʹΛײ͍ͯ͡ͳ͍߹ɺΞϓϦ έʔγϣϯͷͨΊʹϞσϧΛػೳͤ͞Δํ๏Λཧղ͍ͯ͠ͳ͍߹ɺ ͦͷϞσϧιϑτΣΞͱແؔʹͳͬͯ͠·͏ɻ
ࠎ֨ΛΈͤΔ • Ϟσϧ͕໌Β͔ʹͳΕ • ϢʔβιϑτΣΞͷજࡏೳྗʹͬͱ৮ΕΒ ΕΔΑ͏ʹͳΓ • ;Δ·͍Ұ؏ͨ͠༧ଌՄೳͳͷʹͳΔ ͪΌΜͱϞσϧ͕ઃܭʹөͰ͖͍ͯΕɺϢʔβ͕ ιϑτΣΞ෦ʹ͍ͭͯ͋Δఔ༧ଌͰ͖Δͷ
ʹͳΔ
ୈ1෦·ͱΊ • ϝϦοτ • ༻ޠͷਖ਼֬ͳهड़ཧղ͕ϝϯόʔؒͰͰ͖ͦ͏ • ͜ΕʹΑΓ࡞ۀޙͷ༷ࠩ͠ͷݟམͱ͠ॳظஈ֊Ͱݟ͚ͭ͘͢ͳΓͦ͏ • σϝϦοτ •
ϞσϧͷϝϯςφϯείετͦΕͳΓʹߴͦ͏ • ϞσϧΛৠཹ͢ΔίετʢݴޠͷมߋɺυΩϡϝϯτͷมߋɺίʔυͷมߋʣ • ϞσϧΛมߋͨ͠ΒϦϑΝΫλϦϯάΛߦΘͳ͚Ε͍͚ͳ͍
͓ΘΓ