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
Shinnosuke Kugimiya
April 20, 2016
Programming
6
2.9k
CQRSをモバイルに適用してみる
potatotips #28での発表内容です。
まだ試行錯誤中ですが、考えをまとめてみました。
Shinnosuke Kugimiya
April 20, 2016
Tweet
Share
More Decks by Shinnosuke Kugimiya
See All by Shinnosuke Kugimiya
Claude Code x Androidアプリ 開発
kgmyshin
1
1.2k
AndroidアプリエンジニアもMCPを触ろう
kgmyshin
2
1.1k
15分で分かった気になる dumpsys
kgmyshin
1
290
UIテストはもうMaestroでいいのかもしれない話
kgmyshin
28
13k
新規開発を始めるときにやるべきこと
kgmyshin
19
9.1k
android app error handling
kgmyshin
1
1.5k
solid+cqs+dry
kgmyshin
35
10k
Paging Library ~ アイテムの更新 ~
kgmyshin
2
3.4k
KotlinでReact Native(expo) を使いたい
kgmyshin
2
1.2k
Other Decks in Programming
See All in Programming
技術的負債の正体を知って向き合う
irof
0
270
Developer Joy - The New Paradigm
hollycummins
1
370
AI 駆動開発におけるコミュニティと AWS CDK の価値
konokenj
5
280
オープンソースソフトウェアへの解像度🔬
utam0k
17
3.2k
ドメイン駆動設計のエッセンス
masuda220
PRO
13
4.2k
CSC305 Lecture 11
javiergs
PRO
0
300
Leading Effective Engineering Teams in the AI Era
addyosmani
7
650
Temporal Knowledge Graphで作る! 時間変化するナレッジを扱うAI Agentの世界
po3rin
2
280
フロントエンド開発のためのブラウザ組み込みAI入門
masashi
7
3.6k
Webサーバーサイド言語としてのRustについて
kouyuume
1
4.9k
エンジニアインターン「Treasure」とHonoの2年、そして未来へ / Our Journey with Hono Two Years at Treasure and Beyond
carta_engineering
0
440
pnpm に provenance のダウングレード を検出する PR を出してみた
ryo_manba
1
160
Featured
See All Featured
Art, The Web, and Tiny UX
lynnandtonic
303
21k
A better future with KSS
kneath
239
18k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
190
55k
Fireside Chat
paigeccino
41
3.7k
Stop Working from a Prison Cell
hatefulcrawdad
272
21k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
1.7k
It's Worth the Effort
3n
187
28k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
23
1.5k
Being A Developer After 40
akosma
91
590k
Mobile First: as difficult as doing things right
swwweet
225
10k
Code Review Best Practice
trishagee
72
19k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Transcript
CQRSͷߟ͑ํΛ ϞόΠϧʹద༻ͯ͠ΈΔ (ࢼߦࡨޡத) potatotips #28
CQRSͱʁ
Command and Query Responsibility Segregation ίϚϯυΫΤϦ
Command and Query Separation ίϚϯυΫΤϦ ϝιουϨϕϧͰίϚϯυͱΫΤϦΛ ͚Α͏ͱ͍͏ߟ͑
CQRSCQSΛઃܭϨϕϧʹ ΈࠐΜͩͷ
Α͋͘Δͨͱ͑ Bertrand Meyerʮ͋ΒΏΔϝιουɺΞΫγϣϯ Λ࣮ߦ͢ΔίϚϯυ͔ɺݺͼग़͠ݩʹσʔλΛฦ͢ ΫΤϦ͔ͷ͍ͣΕ͔Ͱ͋ͬͯɺ྆ํΛߦͬͯͳΒ ͳ͍ɻ͜Εɺ࣭Λ͢Δ͜ͱͰճΛมԽͤͯ͞ ͳΒͳ͍ͱ͍͏͜ͱͩɻʯ ఝٶʮGETϝιουͷதͰUPDATE͢ΔͳΈ͍ͨͳʯ
CommandଆͱQueryଆʹ ͚ΔͱԿ͕͋Γ͕͍͔ͨʁ
ҙ ׂͱීஈޠΒΕΔCQRSEvent Sourcing͋Γ͖Ͱ ޠΒΕ·͢ ͨͩɺEvent SourcingϞόΠϧͷઃܭʹ ߹Θͳ͍ͷͰͦΕൈ͖Ͱ͠·͢ ৄ͍࣌ؒ͠ͳ͍ͷͰɺׂѪ
ͦͦCommandଆͱQueryଆ ߟ͑Δ͜ͱ͕݁ߏҧ͏ɻ
؆୯ͳFeedܥͷΞϓϦΛ࡞Ζ͏ͱͯ͠ɺ هࣄҰཡͱ͔هࣄৄࡉαΫαΫ࡞Εͯ ͳ͔ͳ͔៉ྷͳઃܭͩͬͨͷʹɺ POSTͳϝιουΛݺͿػೳೖΕ్ͨɺ શମͷઃܭ͔Β౷Ұੑ͕ফ͑ͨ͜ͱ͋Γ·ͤΜ͔ʁ ͋Δ͋Δʁ
͡Ί͔Β CommandଆͱQueryଆΛ͚ͯߟ͑Δͱ ͦ͏͍͏൵͔ܶΒٹΘΕΔ
3PVUFS ྫ͑͜Μͳײ͡ (WIP) Read Command Command binding %PNBJO Observable/ Promise(DTO)
7JFX.PEFM Feedback 6* JOGSBTUSVDUVSF
Commandଆ - ඇಉظ௨৴ - υϝΠϯ - Feedbackͷํ๏ ΒΜΛ͔ͬ͠Γߟ͑ͯΕ ͳΜͰ͍͍ͱࢥ͏ɻ JOGSBTUSVDUVSF
3PVUFS Command %PNBJO Feedback 6*
None
None
binding Observable/ Promise(DTO) 7JFX.PEFM 6* Readଆ(Ͳ͏Ͱྑ͍) Readଆ࠷ѱɺ Smart UI Anti
Patternʹ ͯ·ͬͯ ͦΜͳʹมͳ͜ͱͳΒͳ͍ JOGSBTUSVDUVSF
None
͜͏͢Δ͜ͱͰ݁ߏઃܭ͕εοΩϦ͢Δ
ͨͩ͠ɺ͜͏͍͏ཁ݅ʹ߹Θͳ͍ • ΫΠζܥ • ήʔϜܥ Read͖ͯͨ͠ͷΛॾʑՃͨ͠Γ͢Δܥ
binding Observable/ Promise(DTO) 7JFX.PEFM 6* JOGSBTUSVDUVSF binding 7JFX.PEFM 6* JOGSBTUSVDUVSF
%PNBJO ͜͜ʹϩδοΫΛೖΕͨΓೖΕͳ͔ͬͨΓͰΉ
·ͱΊ
• ReadଆɺCommandଆͰઃܭΛߟ͑ΔͱεοΩϦ͢Δ • Readଆ͕ෳࡶͳ߹߹Θͳ͍͔͠Εͳ͍
༡ΜͰΔͷͰ͋·ΓࢀߟʹͳΒͳ͍͔͚ͩͲɺαϯϓϧ https://github.com/kgmyshin/esa-android
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠