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
haljik
September 27, 2018
Programming
130
0
Share
ドメイン駆動設計の紹介
haljik
September 27, 2018
More Decks by haljik
See All by haljik
develop-with-domain-expert
haljik
1
1.2k
Isolating-the-domainの紹介
haljik
3
1.8k
普段使いのDDD
haljik
21
9.4k
実録Spring MVC
haljik
10
5k
ドメイン駆動設計を軽快に実践するための工夫
haljik
22
7.7k
Other Decks in Programming
See All in Programming
サーバーレスで作る、動画データ管理基盤
oyasumipants
0
330
Claspは野良GASの夢をみるか
takter00
0
150
These Five Tricks Can Make Your Apps Greener, Cheaper, & Nicer
hollycummins
0
260
「エンジニアインターン、どうやって取った?」準備のリアルを語るLT会 Progate BAR
akiomatic
0
110
Composerを使ったサプライチェーン攻撃の様子を眺めてみる #phpstudy
o0h
PRO
2
210
JavaDoc 再入門
nagise
0
230
Modding RubyKaigi for Myself
yui_knk
0
850
tsserverとは何だったのか、これからどうなるのか
nowaki28
1
430
RTSPクライアントを自作してみた話
simotin13
0
410
新規プロダクトを高速で生み出すハーネスエンジニアリング
seanchas116
19
7.8k
Swiftのレキシカルスコープ管理
kntkymt
0
210
SPMマルチモジュールで テストカバレッジを取得する技法
yosshi4486
0
140
Featured
See All Featured
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
1
2.7k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.5k
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
200
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
3.3k
Documentation Writing (for coders)
carmenintech
77
5.4k
The Limits of Empathy - UXLibs8
cassininazir
1
340
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.7k
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
210
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
280
The Cost Of JavaScript in 2023
addyosmani
55
10k
The SEO Collaboration Effect
kristinabergwall1
1
470
Designing Powerful Visuals for Engaging Learning
tmiket
1
390
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 ίΞυϝΠϯͷअຐΛ͠ͳ͍Α͏ʹڽू͞ΕͨϝΧχζϜ ΛΓग़͢