Slide 1

Slide 1 text

CQRSͷߟ͑ํΛ ϞόΠϧʹద༻ͯ͠ΈΔ (ࢼߦࡨޡத) potatotips #28

Slide 2

Slide 2 text

CQRSͱ͸ʁ

Slide 3

Slide 3 text

Command and Query Responsibility Segregation ίϚϯυΫΤϦ੹຿෼཭

Slide 4

Slide 4 text

Command and Query Separation ίϚϯυΫΤϦ෼཭ ϝιουϨϕϧͰίϚϯυͱΫΤϦΛ ෼͚Α͏ͱ͍͏ߟ͑

Slide 5

Slide 5 text

CQRS͸CQSΛઃܭϨϕϧʹ ૊ΈࠐΜͩ΋ͷ

Slide 6

Slide 6 text

Α͋͘Δͨͱ͑࿩ Bertrand Meyerʮ͋ΒΏΔϝιου͸ɺΞΫγϣϯ Λ࣮ߦ͢ΔίϚϯυ͔ɺݺͼग़͠ݩʹσʔλΛฦ͢ ΫΤϦ͔ͷ͍ͣΕ͔Ͱ͋ͬͯɺ྆ํΛߦͬͯ͸ͳΒ ͳ͍ɻ͜Ε͸ɺ࣭໰Λ͢Δ͜ͱͰճ౴ΛมԽͤͯ͞ ͸ͳΒͳ͍ͱ͍͏͜ͱͩɻʯ ఝٶʮGETϝιουͷதͰUPDATE͢ΔͳΈ͍ͨͳ࿩ʯ

Slide 7

Slide 7 text

CommandଆͱQueryଆʹ ෼͚ΔͱԿ͕͋Γ͕͍͔ͨʁ

Slide 8

Slide 8 text

஫ҙ ׂͱීஈޠΒΕΔCQRS͸Event Sourcing͋Γ͖Ͱ ޠΒΕ·͢ ͨͩɺEvent Sourcing͸ϞόΠϧͷઃܭʹ͸ ߹Θͳ͍ͷͰͦΕൈ͖Ͱ࿩͠·͢ ৄ͍͠࿩͸࣌ؒͳ͍ͷͰɺׂѪ

Slide 9

Slide 9 text

ͦ΋ͦ΋CommandଆͱQueryଆ͸ ߟ͑Δ͜ͱ͕݁ߏҧ͏ɻ

Slide 10

Slide 10 text

؆୯ͳFeedܥͷΞϓϦΛ࡞Ζ͏ͱͯ͠ɺ هࣄҰཡͱ͔هࣄৄࡉ͸αΫαΫ࡞Εͯ ͳ͔ͳ͔៉ྷͳઃܭͩͬͨͷʹɺ POSTͳϝιουΛݺͿػೳೖΕ్ͨ୺ɺ શମͷઃܭ͔Β౷Ұੑ͕ফ͑ͨ͜ͱ͸͋Γ·ͤΜ͔ʁ ͋Δ͋Δʁ

Slide 11

Slide 11 text

͸͡Ί͔Β CommandଆͱQueryଆΛ෼͚ͯߟ͑Δͱ ͦ͏͍͏൵͔ܶΒٹΘΕΔ

Slide 12

Slide 12 text

3PVUFS ྫ͑͹͜Μͳײ͡ (WIP) Read Command Command binding %PNBJO Observable/ Promise(DTO) 7JFX.PEFM Feedback 6* JOGSBTUSVDUVSF

Slide 13

Slide 13 text

Commandଆ - ඇಉظ௨৴ - υϝΠϯ - Feedbackͷํ๏ Β΁ΜΛ͔ͬ͠Γߟ͑ͯΕ͹ ͳΜͰ΋͍͍ͱࢥ͏ɻ JOGSBTUSVDUVSF 3PVUFS Command %PNBJO Feedback 6*

Slide 14

Slide 14 text

No content

Slide 15

Slide 15 text

No content

Slide 16

Slide 16 text

binding Observable/ Promise(DTO) 7JFX.PEFM 6* Readଆ(Ͳ͏Ͱ΋ྑ͍) Readଆ͸࠷ѱɺ Smart UI Anti Patternʹ ౰ͯ͸·ͬͯ΋ ͦΜͳʹมͳ͜ͱ͸ͳΒͳ͍ JOGSBTUSVDUVSF

Slide 17

Slide 17 text

No content

Slide 18

Slide 18 text

͜͏͢Δ͜ͱͰ݁ߏઃܭ͕εοΩϦ͢Δ

Slide 19

Slide 19 text

ͨͩ͠ɺ͜͏͍͏ཁ݅ʹ͸߹Θͳ͍ • ΫΠζܥ • ήʔϜܥ Read͖ͯͨ͠΋ͷΛॾʑՃ޻ͨ͠Γ͢Δܥ

Slide 20

Slide 20 text

binding Observable/ Promise(DTO) 7JFX.PEFM 6* JOGSBTUSVDUVSF binding 7JFX.PEFM 6* JOGSBTUSVDUVSF %PNBJO ͜͜ʹϩδοΫΛೖΕͨΓೖΕͳ͔ͬͨΓͰ೰Ή

Slide 21

Slide 21 text

·ͱΊ

Slide 22

Slide 22 text

• ReadଆɺCommandଆͰઃܭΛߟ͑ΔͱεοΩϦ͢Δ • Readଆ͕ෳࡶͳ৔߹͸߹Θͳ͍͔΋͠Εͳ͍

Slide 23

Slide 23 text

༡ΜͰΔͷͰ͋·ΓࢀߟʹͳΒͳ͍͔΋͚ͩͲɺαϯϓϧ https://github.com/kgmyshin/esa-android

Slide 24

Slide 24 text

͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠