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
チームをCQRS
Search
boiyama
March 30, 2018
Programming
1
1.6k
チームをCQRS
We Are JavaScripters! @17th
https://wajs.connpass.com/event/81022/
の発表資料です。
boiyama
March 30, 2018
Tweet
Share
More Decks by boiyama
See All by boiyama
Reproのビジネスサイドを支えるJS
boiyama
0
180
バックオフィスに行ったソフトウェアエンジニアの業務効率化事例
boiyama
1
270
2018年、IE6対応サイトを作る
boiyama
4
990
ヤバいESLint/TSLintルール作っちゃったかもしれない
boiyama
0
1.5k
フロントエンドのサーバーレス SSR編
boiyama
0
700
Serverless for Front-end Server-Side Rendering
boiyama
1
110
Learning Elm in JS
boiyama
1
550
JSでElmを学ぶ
boiyama
0
99
フロントエンドのサーバーレス SPA編
boiyama
1
1.1k
Other Decks in Programming
See All in Programming
AI Agent の開発と運用を支える Durable Execution #AgentsInProd
izumin5210
7
2.3k
開発者から情シスまで - 多様なユーザー層に届けるAPI提供戦略 / Postman API Night Okinawa 2026 Winter
tasshi
0
190
AIエージェントの設計で注意するべきポイント6選
har1101
7
3.4k
AIと一緒にレガシーに向き合ってみた
nyafunta9858
0
150
MUSUBIXとは
nahisaho
0
120
例外処理とどう使い分ける?Result型を使ったエラー設計 #burikaigi
kajitack
16
6k
組織で育むオブザーバビリティ
ryota_hnk
0
170
コントリビューターによるDenoのすゝめ / Deno Recommendations by a Contributor
petamoriken
0
200
Grafana:建立系統全知視角的捷徑
blueswen
0
320
CSC307 Lecture 07
javiergs
PRO
0
550
AI Schema Enrichment for your Oracle AI Database
thatjeffsmith
0
230
ZJIT: The Ruby 4 JIT Compiler / Ruby Release 30th Anniversary Party
k0kubun
1
390
Featured
See All Featured
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.3k
Paper Plane
katiecoart
PRO
0
46k
RailsConf 2023
tenderlove
30
1.3k
It's Worth the Effort
3n
188
29k
The Cost Of JavaScript in 2023
addyosmani
55
9.5k
Tell your own story through comics
letsgokoyo
1
800
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
1
47
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
52
For a Future-Friendly Web
brad_frost
182
10k
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
0
140
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
440
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
0
1.8k
Transcript
ν ʔϜ Λ C Q R S 2 0 1
8 . 3 . 3 0 We A re J a v a S c r i p t e r s # 1 7
P ro f i l e • ϑϩϯτΤϯυΤϯδχΞ at PERSOL
• GitHub: boiyaa Twitter: boiyaaaaaa
C Q R S ίϚϯυΫΤϦ શͯͷॲཧίϚϯυʢߋ৽ʣ͔ΫΤϦʢࢀরʣͰɺͦΕͧΕඞཁͳͷ͕ҧ͏͔Β͚ͯߏ͢Δͱ ͍͏ύλʔϯ ߋ৽ॲཧɿ υϝΠϯϩδοΫ༗ σʔλ߹ੑ
ࢀরॲཧɿ υϝΠϯϩδοΫແ ύϑΥʔϚϯεͱ͔ݕࡧͷ͢͠͞ͱ͔
• αʔόʔαΠυͰΑ͘ΘΕΔύλʔϯ • Akka͕༗໊ ߋ৽ ࢀর EventʢߴՄ༻ͳDBʣ Stateʢ߹ͳDBʣ Command
• αʔόʔαΠυ͚ͩͰͷߟ͑ํͰͳ͍ • ReduxͳΜ͔CQRSνοΫͳϑϨʔϜϫʔΫ Event Props Action State ʢAPIͱ͔ ɹLocalStorageͱ͔ʣ
Reducer ߋ৽ ࢀর
ਓͷׂ͜Μͳײ͡Ͱ͚͍ͨͱ͍͏
ϑϩϯτΤϯυͱόοΫΤϯυͷ৬Λ ϑϩϯτΤϯυɿը໘Λ࡞Δ όοΫΤϯυɿσʔλΛ࡞Δ ͱఆٛ͢Δͱɺ
࣮ࡍͷݱͷׂ୲͜͏ͳ͍ͬͯΔ ϑϩϯτΤϯυ୲ऀɿϑϩϯτΤϯυʴΫϥΠΞϯτ αΠυόοΫΤϯυ όοΫΤϯυ୲ऀɿαʔόʔαΠυόοΫΤϯυ
ͱ͍͏ͷ ϑϩϯτΤϯυɹˠɹϑϩϯτΤϯυΤϯδχΞ όοΫΤϯυɹˠɹαʔόʔαΠυΤϯδχΞ ͳΜͰ͜͏ͳͬͯΔʁ
FirebaseͳͲΛ࠾༻ͯ͠ΫϥΠΞϯταΠυʹ΄ͱΜͲ ͷϩδοΫΛ͖࣋ͬͯͨΓ͢Δ ͰͦΕΛαʔόʔαΠυϨϯμϦϯάͨ͠Γ͢Δ ΫϥΠΞϯτͱαʔόʔͰࣄΛ͚Δͷ࣌ʹ ϑΟοτͯ͠ͳ͍ͷͰ
ࠓҰ ϑϩϯτΤϯυɿը໘Λ࡞Δ όοΫΤϯυɿσʔλΛ࡞Δ ʹཱͪฦׂͬͯΛఆ͍ٛͨ͠͠
ը໘Λߏ͢ΔͷࢀরॲཧͱͷΈ߹ΘͤͰɺ ߋ৽ॲཧΠϕϯτϋϯυϥͰߦΘΕΔͱ͍͏͜ͱΛ౿ ·͑Δͱɺ • ը໘ͱɺը໘Λߏ͢ΔͨΊͷࢀরॲཧΛ࡞Δ • ը໘ͷΠϕϯτϋϯυϥͱߋ৽ॲཧΛ࡞Δ ͱ͍͏ײ͡Ͱࣄߋ৽ܥͱࢀরܥͰͰ͖ͦ͏
Event State Event State ը໘ ΫϥΠΞϯτ αʔόʔ όοΫΤϯυ ΤϯδχΞ ϑϩϯτΤϯυ
ΤϯδχΞ ຊདྷͷը໘Λ࡞ΔɾσʔλΛ࡞Δ৬ʹूத
JavaScriptΫϥΠΞϯτɾαʔόʔͲͪΒ࡞ΕΔݴ ޠͳ͚ͩ͋ͬͯɺ JavaScripter྆ଆ͚ͳ͍͜ͱʹ߅͕ແ͍ਓ͕ଟ͍ ͱࢥ͏ ͨͩɺԣஅ͢ΔͷͰɺ֤ͷपลࣝΛநԽ͠ ͨπʔϧαʔϏεΛ׆༻͍ͨ͠
αʔόʔαΠυാͷਓ͚ େͳϑϩϯτΤϯυΤίγεϜͷΩϟονΞοϓͷखؒΛ͔͚ͣʹࡁΉͷ • Nuxt.js: VueϕʔεͰɺΕΔࣄͷଟ͞ͱԱ͑Δࣄͷগͳ͞ͷόϥϯε͕͍͍ • Next.js: Reactϕʔεʹ͔ͯ͠ͳΓԱ͑Δࣄগͳ͘Ͱ͖͍ͯΔ
• Redux: αʔόʔαΠυͰCQRS͍ͬͯΔਓʹೃછΈ͍͢ͱࢥ͏͠ɺӬଓԽ͍ͨ͠σʔλΛ ѻ͏ϑϨʔϜϫʔΫͱͯ͠ • AMP: ΕΔࣄগͳ͍͚ͲԱ͑Δࣄ͕Ұ൪গͳ͍ɻSPAͰͳ͍ͷͰαʔόʔαΠυతʹςϯϓ ϨʔτΤϯδϯʹॻ͚͍͍ͷͰϋʔυϧ͍
ϑϩϯτΤϯυാͷਓ͚ αʔόʔαΠυͷՄ༻ੑύϑΥʔϚϯεΛࣗྗͰ୲อ͢Δͷ͍͠ͷͰɺӡ༻ϋʔυϧͷ͍ͷ • Cloud Firestore: σʔλΛΫϥΠΞϯταʔόʔؒͰಉظ͢Δεέʔϥϒϧͳ NoSQLσʔλϕʔεɻ ͦͦ͜͜ͷΫΤϦػೳʢ!=ͱ͔orͱ͔ͳ͍ʣɻ·ͩϕʔλ •
Cloud Functions for Firebase: Firestore ͷߋ৽ΛτϦΨʔʹ Node.js ͷؔΛ࣮ߦͰ͖ΔͷͰɺෳࡶͳϩδοΫΛॻ͘ॴʹ͑Δɻ • Firebase Hosting: ͱͯ؆୯ʹ੩తϑΝΠϧΛFastlyͷڧྗͳCDNͰ৴Ͱ͖ΔɻυϝΠϯূ໌ॻஶ͘͠؆୯ɻ Cloud FunctionsͷϓϩΩγͰ͖ͯɺαʔόʔαΠυϨϯμϦϯάͨ͠ը໘৴Ͱ͖Δɻ • AWS AppSync: GraphQLͰDynamoDBʢεέʔϥϒϧͳ NoSQLσʔλϕʔεʣElasticsearch ServiceʢϑϧϚωʔδυͳݕ ࡧΤϯδϯʣ͔ΒσʔλऔಘͰ͖ΔαʔϏεͳͷͰɺΫΤϦͱ૬ੑ͕ྑͦ͞͏ɻ Lambda Ͱ Node.js ͷؔΛ࣮ߦͰ͖ΔͷͰɺෳࡶͳϩδοΫॻ͚Δɻ·ͩύϒϦοΫϓϨϏϡʔ
ͱ͍͏ໝ