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
かとじゅん
June 05, 2019
Programming
4
2.5k
ドメイン駆動設計基礎講座_ドメインと組織編_
かとじゅん
June 05, 2019
Tweet
Share
More Decks by かとじゅん
See All by かとじゅん
AIコーディングエージェントの現実と設計品質の重要性
j5ik2o
0
55
なぜイベント駆動が必要なのか - CQRS/ESで解く複雑系システムの課題 -
j5ik2o
15
7.2k
アクターシステムに頼らずEvent Sourcingする方法について
j5ik2o
8
1.2k
メッセージとイベントを中核に置いたシステム設計の有用性について
j5ik2o
12
3.9k
私のキャリアの旅路: 技術をきっかけに変化を楽しむ
j5ik2o
3
930
いかに開発効率と品質を高めるか: ドメイン駆動設計と組織パターンの視点から考える
j5ik2o
5
2.9k
社内のメンバーに「関数型プログラミングの学習・教育」についていろいろ聞いてみた
j5ik2o
2
2.1k
AWS データベースブログの記事 「Amazon DynamoDBによる CQRSイベントストアの構築」 を勝手に読み解く
j5ik2o
2
3.2k
EIPとAkkaについて
j5ik2o
3
2.9k
Other Decks in Programming
See All in Programming
そのAPI、誰のため? Androidライブラリ設計における利用者目線の実践テクニック
mkeeda
2
290
為你自己學 Python - 冷知識篇
eddie
1
350
Flutter with Dart MCP: All You Need - 박제창 2025 I/O Extended Busan
itsmedreamwalker
0
150
奥深くて厄介な「改行」と仲良くなる20分
oguemon
1
520
print("Hello, World")
eddie
2
530
今だからこそ入門する Server-Sent Events (SSE)
nearme_tech
PRO
3
170
Vue・React マルチプロダクト開発を支える Vite
andpad
0
110
基礎から学ぶ大画面対応(Learning Large-Screen Support from the Ground Up)
tomoya0x00
0
430
Android端末で実現するオンデバイスLLM 2025
masayukisuda
1
150
MCPで実現するAIエージェント駆動のNext.jsアプリデバッグ手法
nyatinte
7
1.1k
Swift Updates - Learn Languages 2025
koher
2
470
HTMLの品質ってなんだっけ? “HTMLクライテリア”の設計と実践
unachang113
4
2.8k
Featured
See All Featured
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
How GitHub (no longer) Works
holman
315
140k
GitHub's CSS Performance
jonrohan
1032
460k
The World Runs on Bad Software
bkeepers
PRO
70
11k
Scaling GitHub
holman
463
140k
Optimising Largest Contentful Paint
csswizardry
37
3.4k
We Have a Design System, Now What?
morganepeng
53
7.8k
Making the Leap to Tech Lead
cromwellryan
135
9.5k
Raft: Consensus for Rubyists
vanstee
140
7.1k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
7
840
The Art of Programming - Codeland 2020
erikaheidi
56
13k
Transcript
υϝΠϯۦಈઃܭجૅߨ࠲ ʙυϝΠϯͱ৫ฤʙ ͔ͱ͡ΎΜ !KJLP
υϝΠϯͱ#$
υϝΠϯͱ#$ w υϝΠϯ ྖҬ w Ϗδωεͷઓུ՝Λੳ໌֬Խ͢ΔྖҬ w #$ڥք͚ͮΒΕͨίϯςΩετ ղܾྖҬ
w Ϗδωεͷઓུ՝Λղܾ͢ΔྖҬ
αϒυϝΠϯ w ίΞυϝΠϯ w ৫Λޭʹಋ͘࠷ॏཁͳ ͷ w αϒυϝΠϯ w ࢧԉυϝΠϯ
w ϏδωεʹඞཁෆՄܽͩ ͕ίΞυϝΠϯ΄ͲॏཁͰ ͳ͍ͷ w ൚༻υϝΠϯ w ϏδωεʹಛผͰͳ͍͕ શମͱͯ͠ඞཁͳͷ ೝূ ܥ ֎෦&31ͳͲࠩ͠ସ͑ Մೳͳͷ υϝΠϯ ࢧԉυϝΠϯ ൚༻υϝΠϯ ίΞυϝΠϯ
&ίϚʔεͷυϝΠϯੳྫ υϝΠϯ &ίϚʔε#$ Χλϩά จ ٻ ൃૹ ࡏݿ w ଟ͘ͷؔ৺ࣄ͕୯Ұ#$ʹด͡ࠐΊΒΕͯ͢ͷཁٻʹରԠͰ͖ͳ͍
w ຊ࣭తͰͳ͍ґଘ͕ൃੜ͠มߋ༰қੑ͕Լ͢Δ w ৫ͷίϛϡχέʔγϣϯෳࡶԽ͢Δ w ຊདྷαϒυϝΠϯɾ#$ຖʹׂ͞ΕΔ͖ w ग़య࣮ફυϝΠϯۦಈઃܭ
αϒυϝΠϯͷੳ w ෳࡶʹབྷΈ߹ͬͨϞ σϧΛղ͠ɺػೳ ʹج͍ͮͨαϒυϝ Πϯʹׂ͢Δ w αϒυϝΠϯ#$ͷ ؔੑཧ͢Δ w
#$͕αϒυϝΠϯ ͚ͩͰΓཱͭͱ ݶΒͳ͍͕ɺͰ͖Ε #$ʹαϒυϝΠ ϯ͕·͍͠ w ग़య࣮ફυϝΠϯۦ ಈઃܭ υϝΠϯ &ίϚʔε#$ ٻ จ Χλϩά ࡏݿ#$ ൃૹ धཁ༧ଌ#$ ࡏݿ
ίΞυϝΠϯͷੳ w ࡏݿͷ࠷దԽ͕՝ w ചΕߦ͖͕Α͍Λޮతʹࡏݿ͠ɺചΕͳ͍ ͷࡏݿΛ֬อ͠ͳ͍ɻ w ࢿۚޮΛվળ͠ചΕےͷࡏݿΛ֬อ͘͢͠ ͢Δɻ·ͨɺ༧Λ্ճΔചΕߦ͖Λݟͤͨͱ͖ɺ ͦͷͷࡏݿ֬อͰ͖ͳ͚ΕͳΒͳ͍ɻ
w কདྷͷࡏݿྔച্ݟࠐΈΛաڈͷ͔ΒஅͰ ͖Εେ͖ͳॿ͚ʹͳΔɻ͜ͷΑ͏ͳधཁ༧ଌػೳ ͷಋೖ৽ͨͳίΞυϝΠϯʹͳΔͩΖ͏
ίϯςΩετϚοϓͷత w γεςϜؒͷؔΛదʹ ѲͰ͖Δ w νʔϜطଘγεςϜͱͷ࿈ ܞํ๏ΛѲͰ͖ɺଞνʔϜ ͱͷίϛϡχέʔγϣϯͷඞ ཁੑΛஅͰ͖ΔΑ͏ʹͳΔ w
ίϯςΩετϚοϓ৫ؒ ͷΛݟ͚ͭग़ͤΔ།Ұͷ υΩϡϝϯτͱͳΔͨΊɺϓ ϩδΣΫτͷޭʹෆՄܽͱ ͞Ε͍ͯΔ w ग़య࣮ફυϝΠϯۦಈઃܭ ೝূɾΞΫηε ΞδϟΠϧ ϓϩδΣΫτཧ ίϥϘϨʔγϣϯ 6 6 6 % % %
ίϯςΩετϚοϓͷύλʔϯ w ৫ύλʔϯ w νʔϜͷؔΛ ද͢ w ౷߹ύλʔϯ w σʔλͱγες
Ϝͷ࿈ܞํ๏Λ ද͢ νʔϜ# νʔϜ" γεςϜ# γεςϜ" ձ σʔλ
৫ύλʔϯ
ύʔτφʔγοϓ w ೋͭͷίϯςΩετΛ୲͢ΔνʔϜ͕ޭɾࣦഊͷ ӡ໋Λڞʹ͢Δ৫ύλʔϯ ӡ໋ڞಉମ w νʔϜؒͰڠྗతͳؔΛங͖ɺ։ൃͷϓϥϯχϯά ΠϯςάϨʔγϣϯͷཧڞಉͰߦ͍ɺ͓ޓ͍ͷ χʔζΛຬͨ͢Α͏ʹ͢Δඞཁ͕͋Δɻ૬ޓґଘ͢Δ
ػೳ͓ޓ͍ͷϦϦʔεʹؒʹ߹͏Α͏ʹ։ൃ͢Δ $POUFYU# $POUFYU"
ผʑͷಓ w ίϯςΩετΛ͢Δ৫ύλʔϯ w ೋͭͷػೳͷू߹͕͓ޓ͍ʹͱͬͯෆՄܽͰͳ͍ͳ Β͢Δ͜ͱ͕Ͱ͖Δ w ΠϯςάϨʔγϣϯͷߴίετΛΘ͟Θ͟͏ඞཁ ͳ͍ɻ։ൃऀ͕ͦͷখ͍͞είʔϓͰγϯϓϧͰಛԽ ͨ͠ղܾࡦΛݟ͚ͭΒΕΔΑ͏ʹ͢Δ
$POUFYU# $POUFYU"
ॱԠऀ w ্ྲྀԼྲྀ͕ؔ͋Δ৫ύλʔ ϯɻͨͩ͠ɺ্ྲྀ͕Լྲྀͷཁٻ ʹԠ͑Δಈػ͕ͳ͍ɻ w ্ྲྀʹԼྲྀͷ൱ͷ͕ͳ͍ w ԼྲྀνʔϜ#$ؒͷมͷखؒ Λলͨ͘Ίʹɺ্ྲྀʹ༩͑ΒΕ
ͨϞσϧͰզຫ͢͠Δ͜ͱʹͳ Δ $POUFYU# $POUFYU" 6QTUSFBN %PXOTUSFBN
ސ٬ڙڅऀ w ্ྲྀԼྲྀ͕ؔ͋Δ৫ύλʔ ϯɻͨͩ͠ɺ্ྲྀͷνʔϜ͕ޭ ͢Δ͔Ͳ͏͔͕Լྲྀͷ݁Ռʹࠨӈ ͞ΕΔ w ্ྲྀνʔϜԼྲྀνʔϜͷχʔζ ʹ༷ʑͳํ๏ͰରԠ͢Δඞཁ͕͋ ΔɻԼྲྀͷ༏ઌॱҐΛߟྀͯ͠ɺ
্ྲྀͷϓϥϯχϯάΛߦ͏ɻԼྲྀ ͷཁ݅ʹඞཁͱͳΔ࡞ۀʹ͍ͭͯ ަব͠ɺ༧ࢉΛཱͯΔ͜ͱͰఏڙ ͷଋͱεέδϡʔϧΛશһ͕ཧ ղͰ͖ΔΑ͏ʹ͢Δ $POUFYU# $POUFYU" 6QTUSFBN %PXOTUSFBN
౷߹ύλʔϯ
ڊେͳటஂࢠ #JH#BMMPG.VE w ڥք͕ͳ͍͘͠ᐆດͳγεςϜΛ ࣔ͢Ξϯνύλʔϯ w ෳͷ֓೦ମܥ͕ࠞ͟Γ߹͍ɺఆٛ ϧʔϧ͕ᐆດͳͬͨΓໃ६͢Δɻػೳ Ճ͞ΕΔͱJGDBTFͳͲͷذϩδο Ϋ͕૿͑ΔɻґଘؔιϑτΣΞ
Λԣஅ͠࠷ऴతʹటஂࢠʹͳΔ w &ίϚʔεͷͱࡏݿͷผͷ ֓೦͕ͩɺڥք͕ͳ͍ͷͰͯ͢ͷཁ ٻΛຬͨ͢ɺਆϞσϧͱͯ͠ͷϞ σϧ͕Ͱ͖͕͋Δɻཧղมߋࠔ ʹʜ w ࠷ਓؾ͕͋Δઃܭख๏Ͱ͋Δʜ $POUFYU# $POUFYU" $POUFYU$
ڞ༗Χʔωϧ w Ұ෦ͷϞσϧͦΕʹؔ࿈͢Δ ίʔυΛڞ༗͢Εɺ૬ޓґଘ ੑ͕ඇৗʹߴ·Δɻ w ઃܭ࡞ۀͷॿ͚ʹͳΔ͜ͱ͋ ΕɺٯʹअຐʹͳΔ͜ͱ͋ ΔɻҰํͷνʔϜʹ૬ஊͤͣʹ มߋͯ͠ͳΒͳ͍ɻ
w ໌ࣔతͳڥքΛఆΊɺೋͭͷ νʔϜ͕߹ҙͨ͠υϝΠϯϞσ ϧͷαϒηοτΛࢦఆ͢Δ $POUFYU# $POUFYU"
ഊࢭ "$- w ഊͨ͠ੈքͷϞσϧΛ৽͍͠ੈքʹ ࣋ͪࠐ·ͳ͍ͨΊͷ౷߹ύλʔϯ w ԼྲྀͷΫϥΠΞϯτִ͢ΔͨΊͷ ϨΠϠʔΛ࡞͢Δ͜ͱʹΑͬͯɺ্ ྲྀͷγεςϜͷػೳΛಠࣗͷυϝΠϯ Ϟσϧͷ༻ޠͰදݱ͢ΔػೳΛఏڙ͢
Δ w "$-طଘͷ*'Λͯ͠ଞͷγες Ϝͱ௨৴͢ΔͷͰɺଞͷγεςϜΛम ਖ਼͢Δඞཁ΄ͱΜͲͳ͍͔ɺ·ͬͨ ͘ͳ͍͜ͱ͋Δɻ෦తʹɺ͜ͷ ϨΠϠʔ͕ඞཁʹԠͯ͡ೋͭͷϞσϧ ؒͰͷมΛ྆ํʹରͯ͠ߦ͏ $POUFYU# $POUFYU" "$-
ެ։ϗεταʔϏε 0)4 w ϓϩτίϧΛαʔϏεͱͯ͠ެ։͠ɺαϒγεςϜͱ ౷߹͢Δඞཁ͕͋Δ৫͕ར༻Ͱ͖ΔΑ͏ʹ͢Δ w ৽͍͠౷߹ͷཁ݅ʹରԠ͢Δࡍɺϓϩτίϧʹػೳ ΛՃ֦͠ு͢Δɻͨͩ͠ɺ͋ΔνʔϜ͚ͩʹಛ༗ͷ ཁٻผͩɻͦͷΑ͏ͳಛघͳέʔεʹɺҰճݶΓ ͷมαʔϏεΛ༻ͯ͠ϓτϩτίϧΛ֦ு͠ɺڞ
༗ϓϩτίϧ୯७ͰҰ؏ੑͷ͋Δঢ়ଶΛอͭ͜ͱɻ $POUFYU# $POUFYU" 0)4
ެද͞Εͨݴޠ 1- w ͭͷڥքͷϞσϧಉ࢜Λม͢ΔͨΊʹڞ௨ͷ ݴޠΛ͏ɻ w ϞσϧΛ͜ͷڞ௨ݴޠʹมͨ͠ޙʹɺҰํͷϞσ ϧม͢Δ w ެද͞Εͨݴޠެ։ϗεταʔϏεͱΈ߹Θͤ
ͯར༻͞ΕΔ͜ͱ͕ଟ͍ $POUFYU# $POUFYU" 1-
#$ͱϚΠΫϩαʔϏε
#$ͱϚΠΫϩαʔϏε w #$ʹԊͬͯαʔϏεڥքΛҾ͘ɻνʔϜ#$ʹҰக ͢Δ͜ͱʹͳΔɻ#$ͷυϝΠϯ֓೦ΛѲ͢͠ ͘ͳΔɻཁٻมԽ࣌ʹมߋରͷαʔϏε͕ಛఆ͞ Εɺมߋ͢Δඞཁͷ͋ΔՕॴ͕ݮΓɺਝʹσϓϩΠ Ͱ͖ΔΑ͏ʹͳΔ w #$ͷαʔϏε͕͓ޓ͍ʹର͢ΔαʔϏεʹ͋Δ Մೳੑ͕ߴ·ΓɺγεςϜઃܭͱϦϦʔεௐ͕༰қ
ʹͳΔɻ w Ϗδωεརؔऀͱͷରͷํʹؔͯ͠ɺνʔϜ ͕ͷઐՈͱΑ͍ؔΛங͖͘͢ͳΔ
#$γεςϜͷڥքʹ৫ͷڥք
৫ΞʔΩςΫνϟʹӨ͞ΕΔ w ΠϊϕʔγϣϯͷδϨϯϚΑΓ
ίϯΣΠͷ๏ଇ w γεςϜΛઃܭ͢Δ͋ΒΏΔ৫ɺඞͣͦͷ৫ͷίϛϡχ έʔγϣϯߏʹ฿ ͳΒ ͬͨߏΛ࣋ͭઃܭΛੜΈग़͢ɻ w ͭ·Γɺ৫ͷߏγεςϜͷߏͱἧ͑ͯͳ͚ΕͳΒͳ ͍ɻ w
ٯίϯΣΠઓུ ग़య"/"(*-&8": w lࣗͨͪͷ·͍͠ΞʔΩςΫνϟઃܭΛଅਐ͢ΔΑ͏ ʹɺνʔϜͱ৫ଆΛػಈతʹਐԽͤ͞Δ͜ͱΛਪ͢Δɻ ཧతʹʮٕज़తΞʔΩςΫνϟʯ͕ʮϏδωεΞʔΩς Ϋνϟʯͷಉܗࣸ૾ʹͳΔΑ͏ʹz w ʮਓؒ৫ؒͷίϛϡχέʔγϣϯʢใྲྀʣʯͱ͍͏ ͷ͕ιϑτΣΞ։ൃʹܾఆతͳΠϯύΫτΛ༩͑Δɺͱ ͍͏͜ͱΛ·ͣೝΊɺͦΕΛੵۃతʹ׆༻͢ΔΑ͏ʹɺͱ͍ ͏͜ͱͰ͢ɻ
·ͱΊ w ڥք͚ͮΒΕͨίϯςΩετ #$ Ϟσϧͷ༗ޮൣ ғͱݴΘΕΔɻͦͷϞσϧརؔऀؒγεςϜ ؒͰར༻͞ΕΔɻ͜ͷಛੑʹ߹Θͤͯɺ৫ͷڥք ʹγεςϜͷڥքͱͳΔΑ͏ʹ͢Δ͜ͱ͕·ΕΔ w ʮιϑτΣΞձͰͰ͖ͯΔʯͱ͍͏ݴ༿͋
Δɻ৫͕վม͞ΕΔͱ͖ɺίϛϡχέʔγϣϯ ͷมԽ͕ιϑτΣΞ༩͑ΔӨڹΛແࢹͰ͖ͳ ͍ɻࡶͳίϛϡχέʔγϣϯγεςϜΛෳࡶʹ͢ ΔՄೳੑ͋Δ͠ɺ৫ؒͷׂ͕γϯϓϧʹͳΕ ɺͦΕΛӨͨ͠γεςϜγϯϓϧʹͳΔ͔͠ Εͳ͍