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
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ドメイン駆動設計の紹介
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
AIを活用したE2Eテスト実装効率化のあゆみ / ebisu-mobile-14-kotetu
kotetuco
0
120
Observability in Practice:Grafana 與 Edge Device SRE 的那些事
blueswen
0
170
スマートグラスで並列バイブコーディング
hyshu
0
250
Contextとはなにか
chiroruxx
1
350
RTSPクライアントを自作してみた話
simotin13
0
620
Lessons from Spec-Driven Development
simas
PRO
0
210
ADKを使って簡単にAIエージェントを作ってみよう
k1mu21
0
270
「AIで開発し、AIを届ける」をEvalでつなぐ 〜AIネイティブに始めるプロダクト開発の実践〜 / Connecting "Develop with AI, deliver AI" with Eval
rkaga
4
5.3k
1B+ /day規模のログを管理する技術
broadleaf
0
100
PHPで使える日時の表現と、その知り方 #frontend_phpcon_do
o0h
PRO
0
260
The NotImplementedError Problem in Ruby
koic
1
870
Language Server 使ってる? 〜VSCode と Zed の場合〜 / Are you using a Language Server? ~For VS Code and Zed~
handlename
0
800
Featured
See All Featured
Building Applications with DynamoDB
mza
96
7.1k
Building a Scalable Design System with Sketch
lauravandoore
463
34k
Build your cross-platform service in a week with App Engine
jlugia
234
18k
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
330
Marketing to machines
jonoalderson
1
5.5k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
250
1.3M
Fashionably flexible responsive web design (full day workshop)
malarkey
408
66k
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
490
How Software Deployment tools have changed in the past 20 years
geshan
0
34k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.5k
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.9k
The Language of Interfaces
destraynor
162
27k
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 ίΞυϝΠϯͷअຐΛ͠ͳ͍Α͏ʹڽू͞ΕͨϝΧχζϜ ΛΓग़͢