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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
haljik
September 27, 2018
Programming
0
120
ドメイン駆動設計の紹介
haljik
September 27, 2018
Tweet
Share
More Decks by haljik
See All by haljik
develop-with-domain-expert
haljik
1
1.1k
Isolating-the-domainの紹介
haljik
3
1.8k
普段使いのDDD
haljik
21
9.4k
実録Spring MVC
haljik
10
4.9k
ドメイン駆動設計を軽快に実践するための工夫
haljik
22
7.6k
Other Decks in Programming
See All in Programming
Mastering Event Sourcing: Your Parents Holidayed in Yugoslavia
super_marek
0
120
Claude Codeログ基盤の構築
giginet
PRO
7
3.7k
PHP でエミュレータを自作して Ubuntu を動かそう
m3m0r7
PRO
2
150
2026-03-27 #terminalnight 変数展開とコマンド展開でターミナル作業をスマートにする方法
masasuzu
0
200
Agentic AI: Evolution oder Revolution
mobilelarson
PRO
0
200
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
1.1k
車輪の再発明をしよう!PHP で実装して学ぶ、Web サーバーの仕組みと HTTP の正体
h1r0
2
420
飯MCP
yusukebe
0
390
ファインチューニングせずメインコンペを解く方法
pokutuna
0
200
20260320登壇資料
pharct
0
130
Goの型安全性で実現する複数プロダクトの権限管理
ishikawa_pro
2
1.4k
AI時代のシステム設計:ドメインモデルで変更しやすさを守る設計戦略
masuda220
PRO
6
1.1k
Featured
See All Featured
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
250
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
330
Google's AI Overviews - The New Search
badams
0
950
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
490
The Illustrated Children's Guide to Kubernetes
chrisshort
51
52k
Embracing the Ebb and Flow
colly
88
5k
Building an army of robots
kneath
306
46k
Facilitating Awesome Meetings
lara
57
6.8k
So, you think you're a good person
axbom
PRO
2
2k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
The Pragmatic Product Professional
lauravandoore
37
7.2k
Designing Experiences People Love
moore
143
24k
Transcript
υϝΠϯۦಈઃܭͷհ େਖ਼(FFL/JHIU7PM !IBMKJL
ࣗݾհ w Δͬ͘͡ w 5XJUUFS!IBMKJL w ϑϦʔϥϯε w +BWBϓϩάϥϚʔ w
̍ࣇͷ w ϚΠΫϩαʔϏε͕Θ͔Γ· ͤΜ
ࢲͷυϝΠϯۦಈઃܭྺ w ژ%%%ಡॻձʹࢀՃͨ͠ͷ͕࠷ॳ w ݱࡏ·ͰখنͭɺதنͷͭͷϓϩδΣΫτͰυϝΠ ϯۦಈઃܭΛ࣮ફ w ΄΅8FCΞϓϦͷΈ w ҰԠશγεςϜ͕ݱͰར༻͞Ε͍ͯΔঢ়گ
w ͏·͍͍ͬͯ͘Δͱ͜Ζ͋Δ͕ɺਂ͍Ϟσϧʹ౸ୡͰ͖ ͳ͍··ऴΘΓɺطʹϞσϧͷҙਤ͕Խͯ͠Δͷ
%%%ʹର͢Δࢲͷݱঢ় w શʹཧղͨ͠ w ͳʹΘ͔Βͳ͍ w ͪΐͬͱͰ͖Δ w ͳʹΘ͔Βͳ͍͜͜
ΤϦοΫɾΤϰΝϯεͷ υϝΠϯۦಈઃܭ͔Β w ·͕͖͑ʙୈ෦υϝΠϯϞσϧΛػೳͤ͞Δ w ·͕͖͑ w ୈষɿࣝΛ͔Έࡅ͘ w ୈষɿίϛϡχέʔγϣϯͱݴޠͷ͍ํ
w ୈষɿϞσϧͱ࣮Λ݁ͼ͚ͭΔ w ୈ෦Ϟσϧۦಈઃܭͷߏཁૉ w ୈষɿυϝΠϯΛִ͢Δ w ୈষɿιϑτΣΞͰදݱ͞ΕͨϞσϧ w ୈষɿݴޠΛ༻͢Δ w ୈ෦ΑΓਂ͍ಎ͔͏ϦϑΝΫλϦϯά w ୈষɿ͠ͳ͔ͳઃܭ͔Βʮ֓೦ͷྠֲʯ w ୈ෦ઓུతઃܭ w ୈষɿڥք͚ͮΒΕͨίϯςΩετ w ୈষɿৠཹ
ҙ ͔ͬ͜ॻ͖ ʜ ͷதࢲݟͰ͢
·͕͖͑ʙୈ̍෦ υϝΠϯϞσϧΛػೳͤ͞Δ w ·͕͖͑ w ୈ̍ষɿࣝΛ͔Έࡅ͘ w ୈ̎ষɿίϛϡχέʔγϣϯͱݴޠͷ͍ํ w ୈ̏ষɿϞσϧͱ࣮Λ݁ͼ͚ͭΔ
·͕͖͑ w ෳࡶ͕͞՝Ͱ͋Δ w ར༻ऀͷ׆ಈʹؔ͢ΔΛղܾ͢Δͷ͕ιϑτΣ Ξͷ֩৺ ͦΕҎ֎ͲΕ΄Ͳʮॏཁʯͩͱͯͦ͠ΕΛࢧ͑Δ ͷͰ͔͠ͳ͍ w ։ൃ͕ΠςϨʔςΟϒͰ͋Δલఏ
w ։ൃऀͱυϝΠϯΤΩεύʔτ͕ີʹؔΘ͍ͬͯΔ લఏ
ୈ̍ষ ࣝΛ͔Έࡅ͘ w ΄ͱΜͲ͕ࣝͳ͍୯७ͳϞσϧ͔ΒձΛ࢝ΊΔ w ։ൃऀͷ࣭ʹ͑Δ͜ͱͰυϝΠϯΤΩεύʔτࣝͷཧղ͕ਫ਼៛ʹͳΔ w ։ൃऀͪΖΜ͕ࣝ૿͑Δ w ॏཁͳͷΛϞσϧʹಋೖ͠ɺಉ࣌ʹෆཁͳৄࡉΛল͘
ୈষৠཹͭͳ͕Δ w ͦͷϞσϧΛݩʹ·ͨձΛ͢Δ w ͜ΕΒΛ܁Γฦ͢ w Ӆ͞Εͨ֓೦Λൃݟ͠ਂ͍Ϟσϧʹ౸Δ
ୈ̎ষ ίϛϡχέʔγϣϯͱݴޠͷ͍ํ w ٕज़༻ޠΘͳ͍ w ͍ͭͰͲ͜ͰϢϏΩλεݴޠ w Λग़ͯ͠ϞσϦϯά͢Δ w ҧײ͍͋·͍͞Λݕ
w ಉ͡ҙຯͷΑ͏ʹฉ͑͜Δҧ͏ݴ༿Λݕ ʢ͔ͨ͠͠ΒΘΕΔจ຺͕ҧ͏͔͠Εͳ͍ʣ w ̍ͭͷνʔϜʹ̍ͭͷݴޠ ίϯΣΠͷ๏ଇͱ͔̐ষͷڥք͚ΒΕͨίϯςΩετʹͭͳ͕Δ
ୈ̏ষ Ϟσϧͱ࣮Λ݁ͼ͚ͭΔ w ੳϞσϧͱ࣮ΛҰகͤ͞Δ w ϞσϦϯάύϥμΠϜΛαϙʔτ͢ΔݴޠͰ࣮͠Α͏ w ࣮ફతϞσϥɿੳऀͱ࣮ऀಉ͡ਓ
·͕͖͑ʙୈ̍෦ͷ·ͱΊ w ·͕͖͑ෳࡶ͞ͱ͍͏՝Λఏ͍ࣔͯ͠Δ w ୈ̍෦ͷϢϏΩλεݴޠΛͬͨϞσϧۦಈઃܭυϝΠ ϯۦಈઃܭͷओͳ׆ಈ w ୈ෦Ҏ߱ͯ͢ୈ̍෦Ͱඳ͔Εͨ׆ಈͷதͰΤϦοΫɾ ΤϰΝϯε͕࣮ࡍʹ໘ͨ͠՝ʹର͢ΔιϦϡʔγϣϯ
ୈ෦ Ϟσϧۦಈઃܭͷߏཁૉ w ୈষɿυϝΠϯΛִ͢Δ w ୈষɿιϑτΣΞͰදݱ͞ΕͨϞσϧ w ୈষɿݴޠΛ༻͢Δ
ୈষ υϝΠϯΛִ͢Δ w ΠϯϑϥετϥΫνϟ6*͔ΒυϝΠϯΛִͯ͠ɺूத Ͱ͖ΔΑ͏ʹ͠Α͏ ʢϨΠϠʔυΞʔΩςΫνϟ͚ͩͲɺυϝΠϯ͕Πϯϑϥ ετϥΫνϟʹґଘ͍ͯ͠Δਤʹͳͬͯͯྲྀੴʹݹ͍ʣ
ୈষ ιϑτΣΞͰදݱ͞ΕͨϞσϧ w ΤϯςΟςΟɺΦϒδΣΫτɺαʔϏεͰදݱ͢Δ ʢαʔϏεͬͯͳ͍ʣ w ؔ࿈ w ؔ࿈ͷํॏཁΛද͢͜ͱ͕͋Δ ྫʮຊʯͱͦͷʮ࡞ՈʯͰͲͪΒ͔Βؔ࿈ΛҾ͘ʁ
w ؔ࿈Λ੍ݶͯ͠දݱ͞ΕΔࣝΛ૿͢ w Ұํ௨ߦ w ݶఆ w ຊ࣭తͰͳ͍ؔ࿈আڈ
ΤϯςΟςΟ lͦΕΏ͑ɿz·Ͱ͕ΉͪΌͪ͘Ό͍ʜ w ࡶʹݴ͏ͱɺಉҰੑͷࣝผ͕ඞཁͳέʔε͍Ζ͍Ζ͋Δ ͦΕΏ͑ɺࣝผ͕ඞཁͳΒࣝผ͢ΔΛͬͨϞσϧΛ ࡞Δͷͩͱ͍͏Α͏ͳ͜ͱ͕ॻ͔Ε͍ͯΔ w γϯϓϧʹอͬͯࣝผʹूத͢Δ ʢྑ͘Ͱ͖ͨͱײͨ͡ΤϯςΟςΟͷଐੑࣝผʹඞཁͳ
ͷͱΦϒδΣΫτ͚ͩৼΔ͍ࣝผͷͨΊͷͷ ͔ͬͨ͠ʣ
ΦϒδΣΫτ w ԿͰ͋Δ͔Λهड़͢ΔΦϒδΣΫτ ୭Ͱ͋Δ͔ɺͲΕͰ͋Δ͔ؾʹ͠ͳ͍ w Ұաੑͷૢ࡞ͷͨΊʹੜ͞Εͯഁغ͞ΕΔ͜ͱ͋Δ w ෆมʹ͢Δ ʢҰ൪ཻͷখ͍͞ཁૉͰՃܭࢉͱ͍ͬͨzυϝΠϯ ϩδοΫzͷஔ͖ॴʹͳΔʣ
ୈষ ݴޠΛ༻͢Δ w ϞσϧۦಈઃܭΛߦ͍ͬͯ͘தͰɺग़͖ͯͨʹͲ͏ύλʔϯΛద༻͍͔͕ͯ͘͠ඳ͔Ε ͍ͯΔ w ߦΘΕ͍ͯΔҰ࿈ͷαΠΫϧ υϝΠϯΛִ͢Δ ΤϯςΟςΟͱΦϒδΣΫτΛ۠ผ͢Δ ؔ࿈Λઃܭ͢Δ
ूͷڥքͱϦϙδτϦΛબʢ͜Εೖग़ྗͷؔ৺ࣄ৭͕ڧ͍ͷͰॳظͷϞσϧͰؾʹ͠ͳ ͯ͘Α͍͔ͳʣ γφϦΦΛΥʔΫεϧʔ͢Δʢʹͩͯ͠ϞσϦϯάʣ ϦϑΝΫλϦϯά ৽ػೳಋೖ ૯߹ԋशతͳ༰ɻ͜ΕΛΠςϨʔςΟϒʹΔ
ୈ෦ ΑΓਂ͍ಎ͔͏ϦϑΝΫλϦϯά wୈষɿ͠ͳ͔ͳઃܭ
ୈষ ͠ͳ͔ͳઃܭ w ֓೦ͷྠֲ 1 ৽ͨͳཁٻ͕དྷΔͨͼɺͦͷ࣌ͷϞσϧͰ͗ͪ͜ͳ͔͘͠දݱͰ͖ͳ͔ͬ ͨΓɺ͋ͪͪ͜Λมߋ͠ͳ͚ΕରԠͰ͖ͳ͔ͬͨΓ͢Δ෦Λɺදݱ͕γ ϯϓϧʹɺมߋ͕؆୯Ͱ҆શʹͳΔΑ͏ʹϦϑΝΫλϦϯάΛ܁Γฦ͢ɻ݁ Ռͱͯͦ͠ͷ෦͕͠ͳ͔ʹͳ͍ͬͯ͘ɻͦͷաఔͰ֓೦ͷྠֲ͕ݟ͑ͯ
͘Δʢ͋Δ͍ݟ͚ͭʹ͍͘ʣ w มߋ͕Ԡٸॲஔʹ͗͢ͳ͍ͷ͔ɺ҉తͳར༻ऀͷؔ৺ࣄɺߏΛൃݟ ͢Δ͖͔͚ͬʹͳΔͷͳͷ͔Λࣗ͢Δ ʢʮୈ̕ষ҉తͳ֓೦Λ໌ࣔతʹ͢Δʯɺʮୈষৠཹʯʹͭͳ͕ Δɻ୯७ʹॏෳΛল͍ͨΓ͢Δٕज़తͳϦϑΝΫλϦϯάͰͳ͘υϝΠϯ ͷݴ༿ʹͳΓ͏Δ֓೦Λݟ͚ͭग़͢ॏཁͳϓϥΫςΟεɻίʔυ͔ΒͷϑΟʔ υόοΫΛಘΔखஈɻʣ
ୈ෦ ઓུతઃܭ w ୈষɿڥք͚ͮΒΕͨίϯςΩετ w ୈষɿৠཹ
ୈষ ڥք͚ͮΒΕͨίϯςΩετ w ॏෳͨ֓͠೦ɺِಉޠͷݕʢձॏཁʣ w ݱ࣮ੈքͷಉ͡ͷΛҟͳΔଆ໘͔ΒΈͨͱ͖ʹ໊લ͘͠ ׂ͕มΘΔɻ͜ΕΒΛಉ͡Ϟσϧͱͯ͠ѻ͏ͷ͔Ͳ͏͔ݕ౼͢ Δ w ୯ҰϞσϧମܥͷதͰ୯ʹݺͼ͚ΒΕͨΓҟͳΔ֓೦ͱͯ͠ந
ग़Ͱ͖ΔέʔεͱɺଞͷཁૉΛҾ͖࿈ΕͯผͷϞσϧମܥ͕͏ ̍ηοτͰ͖͕͋ΔΑ͏ͳέʔε͕͋Δ w ผͷϞσϧମܥ͕ग़དྷΔέʔε͕ڥք͚ͮΒΕͨίϯςΩετʜ ͜ͷຊͷதͰۤͷࡦͬΆ͍ॻ͔ΕํΛ͍ͯ͠ΔΑ͏ʹݟ͑Δ
ୈ̍̑ষ ৠཹ w υϝΠϯϏδϣϯ໌จͰํ͚ w ڧௐ͞ΕͨίΞʹΑΓίΞυϝΠϯͷ༰Λࢦఆ͢Δ w ύοέʔδϯάͯ͠͠ίΞΛִ͢Δ w ίΞυϝΠϯͷअຐΛ͠ͳ͍Α͏ʹ൚༻αϒυϝΠϯΛ
Γग़͢ w ίΞυϝΠϯͷअຐΛ͠ͳ͍Α͏ʹڽू͞ΕͨϝΧχζϜ ΛΓग़͢