Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Fat Modelを解消するためのCQRSアーキテクチャ
Search
Terai Shogo
October 28, 2023
12k
7
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Fat Modelを解消するためのCQRSアーキテクチャ
Kaigi on Rails 2023 (
https://kaigionrails.org/2023/talks/krpk1900/
) で発表した内容です。
Terai Shogo
October 28, 2023
More Decks by Terai Shogo
See All by Terai Shogo
インフラ、バックエンド、フロントエンドの すべてを最新にする方法
krpk1900
0
22
Railsエンジニアが始めるSRE
krpk1900
0
76
富山発の個人開発サービスで日本中の学校の業務を改善した話
krpk1900
7
730
PRODUCT HISTORY CONFERENCE 2024の裏側
krpk1900
0
160
Kaigi on Rails 2024 〜運営の裏側〜
krpk1900
1
1.9k
【Kaigi on Rails 2024】YOUTRUST スポンサーLT
krpk1900
1
1.2k
今日で分かる!カスタムコップの作り方
krpk1900
2
1.6k
SNS特有のタイムライン機能におけるYOUTRUSTの工夫点
krpk1900
0
100
技術的負債に対してカスタムコップでできること
krpk1900
0
830
Featured
See All Featured
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
940
Google's AI Overviews - The New Search
badams
0
1.6k
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
310
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2.2k
My Coaching Mixtape
mlcsv
0
360
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
1
340
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.6k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Side Projects
sachag
456
43k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.4k
Building a Scalable Design System with Sketch
lauravandoore
464
34k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
203
77k
Transcript
גࣜձࣾ:0653645 ࣉҪলޗ ,BJHJPO3BJMT 'BU.PEFMΛղফ͢ΔͨΊͷ $234ΞʔΩςΫνϟ
ࣗݾհ w ࣉҪলޗ !LSQL@EFW w גࣜձࣾ:0653645 ʙ w
,BJHJPO3BJMT0SHBOJ[FS ʙ w झຯͰݸਓ։ൃ w ੮ସ͑ϝʔΧʔ w େ୩ϝʔλʔ w ੈքҰηΩϡϦςΟ͕ݎ࿚ͳΞϓϦͳͲ !LSQL@EFW
w ຊͷΩϟϦΞ4/4ʰ:0653645ʱ w ΩϟϦΞͷػձΛಘΒΕΔ4/4 w ޭใुͳ͠Ͱ࠾༻Ͱ͖Δ4BB4 αʔϏεհ
ຊηογϣϯͰ͓͢Δ͜ͱ w ίʔυͷݟ௨͠Λྑ͘͢ΔͨΊʹɺ࣮ࡍʹ:0653645Ͱ࠾༻͍ͯ͠Δ $234ΞʔΩςΫνϟΛհ
'BU.PEFM 'BU$POUSPMMFSʹ Μͩ͜ͱ͋Γ·ͤΜ͔ʁ
'BU.PEFMɺ'BU$POUSPMMFSͱʁ w .PEFM$POUSPMMFS͕ଟ͘ͷϩδοΫΛ࣋ͬͨ݁Ռɺ ίʔυ͕ංେԽ͠ɺՄಡੑϝϯςφϯεੑ͕͘ͳͬͯ͠·͏
'BU.PEFMɺ'BU$POUSPMMFSͱʁ w .PEFM$POUSPMMFS͕ଟ͘ͷϩδοΫΛ࣋ͬͨ݁Ռɺ ίʔυ͕ංେԽ͠ɺՄಡੑϝϯςφϯεੑ͕͘ͳͬͯ͠·͏ ωετ͕ਂ͘ͳͬͯ͠·͍ͬͯͨΓɺ
'BU.PEFMɺ'BU$POUSPMMFSͱʁ w .PEFM$POUSPMMFS͕ଟ͘ͷϩδοΫΛ࣋ͬͨ݁Ռɺ ίʔυ͕ංେԽ͠ɺՄಡੑϝϯςφϯεੑ͕͘ͳͬͯ͠·͏ ଟ͘ͷυϝΠϯ͕ݱΕɺ ϩδοΫ͕ෳࡶʹͳͬͯ͠·͍ͬͯΔ
'BU.PEFMɺ'BU$POUSPMMFSͱʁ w .PEFM$POUSPMMFS͕ଟ͘ͷϩδοΫΛ࣋ͬͨ݁Ռɺ ίʔυ͕ංେԽ͠ɺՄಡੑϝϯςφϯεੑ͕͘ͳͬͯ͠·͏ ॲཧͷશମ૾͕Ѳͮ͠Β͍ ӨڹൣғΛѲ͠ͳ͕Β ίʔυΛमਖ਼͢Δ͜ͱ͕ࠔ 😞
:0653645Ͱ $234ΞʔΩςΫνϟʹΑͬͯ ղܾ͍ͯ͠·͢
$234ΞʔΩςΫνϟͱʁ $PNNBOE 2VFSZ $MJFOU %# w ߋ৽ $PNNBOE ͱࢀর 2VFSZ
ͷΛ͢ΔΞʔΩςΫνϟ $PNNBOE2VFSZ3FTQPOTJCJMJUZ4FHSFHBUJPOίϚϯυɾΫΤϦύλʔϯ ߋ৽ ࢀর
:0653645ͷ߹ 6TF$BTF $PNNBOE .PEFM 2VFSZ $MJFOU %# w ಠࣗʹ6TF$BTFΛՃ͍ͯ͠Δ
6TF$BTFͱʁ w ෳͷ$PNNBOEΛΈ߹Θͤͯݺͼग़ׂ͢ w $POUSPMMFSͷߋ৽ܥΞΫγϣϯ DSFBUF VQEBUF EFTUSPZ ͔Βݺͼग़͞ΕΔ 1PTUT$POUSPMMFSSC
DSFBUFΞΫγϣϯ $SFBUF1PTU6TF$BTFSC $SFBUF1PTU$PNNBOESC %FTUSPZ1PTU%SBGU$PNNBOESC EFGDSFBUF ʜ FOE
6TF$BTFͱʁ w ෳͷ$PNNBOEΛΈ߹Θͤͯݺͼग़ׂ͢ w $POUSPMMFSͷߋ৽ܥΞΫγϣϯ DSFBUF VQEBUF EFTUSPZ ͔Βݺͼग़͞ΕΔ 1PTUT$POUSPMMFSSC
DSFBUFΞΫγϣϯ $SFBUF1PTU6TF$BTFSC $SFBUF1PTU$PNNBOESC %FTUSPZ1PTU%SBGU$PNNBOESC EFGDSFBUF ʜ FOE
6TF$BTFͱʁ w ෳͷ$PNNBOEΛΈ߹Θͤͯݺͼग़ׂ͢ w $POUSPMMFSͷߋ৽ܥΞΫγϣϯ DSFBUF VQEBUF EFTUSPZ ͔Βݺͼग़͞ΕΔ 1PTUT$POUSPMMFSSC
DSFBUFΞΫγϣϯ $SFBUF1PTU6TF$BTFSC $SFBUF1PTU$PNNBOESC %FTUSPZ1PTU%SBGU$PNNBOESC EFGDSFBUF ʜ FOE
࣮ࡍʹαϯϓϧίʔυͰղઆ
ߋ৽ܥͷαϯϓϧίʔυ $POUSPMMFS
ߋ৽ܥͷαϯϓϧίʔυ $POUSPMMFS ᶃ6TF$BTFΛݺͼग़͢
ߋ৽ܥͷαϯϓϧίʔυ $POUSPMMFS ᶄ6TF$BTFͷ݁ՌʹΑͬͯɺ ɹεςʔλείʔυΛग़͚͠Δ
ߋ৽ܥͷαϯϓϧίʔυ 6TF$BTF
ߋ৽ܥͷαϯϓϧίʔυ 6TF$BTF ϩοΫΛ͔͚ͨΓɺ τϥϯβΫγϣϯΛுΔॲཧ 6TF$BTFͰߦ͍ͬͯΔ
ߋ৽ܥͷαϯϓϧίʔυ 6TF$BTF ߘ࡞$PNNBOEΛ ݺͼग़͍ͯ͠Δ Լॻ͖আ$PNNBOEΛ ݺͼग़͍ͯ͠Δ 6TF$BTF͕ޭͨ͠Β ௨ॲཧΛݺͼग़͍ͯ͠Δ
ߋ৽ܥͷαϯϓϧίʔυ $PNNBOE
ߋ৽ܥͷαϯϓϧίʔυ $PNNBOE σʔλͷ߹ੑʹؔ͢Δ όϦσʔγϣϯΛߦ͍ͬͯΔ ˞ೝՄʹؔ͢ΔόϦσʔγϣϯ ɹ6TF$BTFͰߦ͍ͬͯΔ
ߋ৽ܥͷαϯϓϧίʔυ $PNNBOE όϦσʔγϣϯͰͳ͚Εɺ σʔλͷߋ৽Λߦ͍ͬͯΔ
ࢀরܥ 2VFSZ ͷ߹ w $POUSPMMFSϩδοΫΛ࣋ͨͣɺ2VFSZΛݺͼग़ͯ͠ಘΒΕͨ݁ՌΛ )551Ϩεϙϯεͱͯ͠ฦ͢ 1PTUT$POUSPMMFSSC JOEFYΞΫγϣϯ
1PTUT2VFSZSC EFGJOEFY ʜ FOE
ࢀরܥͷαϯϓϧίʔυ $POUSPMMFS
ࢀরܥͷαϯϓϧίʔυ $POUSPMMFS ᶃ2VFSZΛݺͼग़͢
ࢀরܥͷαϯϓϧίʔυ $POUSPMMFS ᶄ2VFSZͷ݁ՌΛฦ͢
ࢀরܥͷαϯϓϧίʔυ $POUSPMMFS ᶅσʔλιʔεΛϦʔυϨϓϦΧʹ ɹ͚Δ͜ͱͰෛՙΛࢄ
ࢀরܥͷαϯϓϧίʔυ 2VFSZ ߜΓࠐΈιʔτͳͲͷॲཧ 2VFSZͰߦ͍ͬͯΔ
$234ΞʔΩςΫνϟͷϝϦοτ w ࢀরܥͷϩδοΫ2VFSZʹɺߋ৽ܥͷϩδοΫ$PNNBOEʹ Γग़͢͜ͱʹΑͬͯɺ.PEFM$POUSPMMMFSͷංେԽΛ͛Δ w εέʔϧΞτʹΑͬͯύϑΥʔϚϯεΛ্ͤ͞ΔͨΊʹɺ ࢀরܥͱߋ৽ܥͷσʔλιʔεΛ͚Δ͜ͱ͕ΑΓ؆୯ʹͳΔ w
ͦΕͧΕͷΛ໌֬ʹ͠ɺదͳίʔυྔΛอͭ͜ͱͰɺ ୯ମςετ͕ॻ͖͘͢ͳΔ
$POUSPMMFSͷ w దͳεςʔλείʔυΛฦ͢͜ͱ w దͳҾͰ6TF$BTFΛݺͼग़͢͜ͱ
$POUSPMMFSͷςετ w దͳεςʔλείʔυΛฦ͢͜ͱ w దͳҾͰ6TF$BTFΛݺͼग़͢͜ͱ ϞοΫͨ͠6TF$BTF
6TF$BTFͷ w Τϥʔ͕ൃੜͤͣɺ6TF$BTF͕ޭ͢Δ͜ͱ w దͳҾͰ$PNNBOEΛݺͼग़͢͜ͱ
6TF$BTFͷςετ w Τϥʔ͕ൃੜͤͣɺ6TF$BTF͕ޭ͢Δ͜ͱ w దͳҾͰ$PNNBOEΛݺͼग़͢͜ͱ ิ ϞοΫͨ͠ $PNNBOE ϞοΫͨ͠ $PNNBOE
$PNNBOEͷ w Τϥʔ͕ൃੜͤͣɺ$PNNBOE͕ޭ͢Δ͜ͱ w σʔλͷߋ৽͕ߦΘΕΔ͜ͱ
$PNNBOEͷςετ w Τϥʔ͕ൃੜͤͣɺ$PNNBOE͕ޭ͢Δ͜ͱ w σʔλͷߋ৽͕ߦΘΕΔ͜ͱ
·ͱΊ w :0653645Ͱ࣮ࡍʹ࠾༻͍ͯ͠Δ$234ΞʔΩςΫνϟΛհͨ͠ w $PNNBOEɺ2VFSZɺ6TF$BTFͷΛ໌֬ʹ͠ɺίʔυΛΓग़͢͜ͱ ʹΑͬͯɺ$POUSPMMFS.PEFM͕ංେԽͯ͠͠·͏Λ͍Ͱ͍Δ
ऴΘΓʹ w ࠓαϯϓϧίʔυͰ͕ͨ͠ɺຊ൪ίʔυͰઆ໌͠·͢ w ਫ ͔Β։࠵ w ࢀՃDPOOQBTTΑΓ͓ਃ͠ࠐΈ͍ͩ͘͞ʂ
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ