Slide 1

Slide 1 text

DDD + Flux? @amagitakayosi

Slide 2

Slide 2 text

Implementing Domain Driven Design

Slide 3

Slide 3 text

ͱࢥͬͨ͜ͱΛ঺հ͠·͢ 㵺㱿㵺 ɻP 'MVYͰ͸ʁ

Slide 4

Slide 4 text

Flux

Slide 5

Slide 5 text

%JTQBUDIFS $PNQPOFOU 4UPSF "DUJPO %BUB Flux

Slide 6

Slide 6 text

%JTQBUDIFS $PNQPOFOU #BS"DUJPO 'PP4UPSF 'PP 'PP"DUJPO #BS4UPSF #BS Store͕૿͑Δͱ…

Slide 7

Slide 7 text

DDD

Slide 8

Slide 8 text

Domain-Driven Design • ϏδωεϩδοΫΛυϝΠϯʹ෼ׂ • ΞϓϦέʔγϣϯ = υϝΠϯͷू߹ • ϩδοΫͱ࣮૷ͷ෼཭Λॏࢹ

Slide 9

Slide 9 text

%JTQBUDIFS $PNQPOFOU #BS"DUJPO 'PP4UPSF 'PP 'PP"DUJPO #BS4UPSF #BS Store͕૿͑Δͱ…

Slide 10

Slide 10 text

%JTQBUDIFS $PNQPOFOU #BS"DUJPO 'PP4UPSF 'PP 'PP"DUJPO #BS4UPSF #BS Store͕૿͑Δͱ… $PNQPOFOU

Slide 11

Slide 11 text

%JTQBUDIFS $PNQPOFOU #BS"DUJPO 'PP4UPSF 'PP 'PP"DUJPO #BS4UPSF #BS $PNQPOFOU FooυϝΠϯ BarυϝΠϯ

Slide 12

Slide 12 text

#SPXTFS React 4FSWFS

Slide 13

Slide 13 text

Store "1* %#

Slide 14

Slide 14 text

Store "1* %# 4FSWJDF΋4UPSF্Ͱ࣮૷͢Δʂʂʂ

Slide 15

Slide 15 text

CQRS

Slide 16

Slide 16 text

Command Query Responsibility Segregation • ௚༁͢ΔͱʮίϚϯυΫΤϦ੹೚෼཭ʯ • ίϚϯυ : ঢ়ଶΛมߋ͢Δ • ΫΤϦ : ঢ়ଶΛऔಘ͢Δ • ঢ়ଶͷऔಘํ๏Λ੍ݶ͠ɺߟ͑ΔࣄΛݮΒ͢

Slide 17

Slide 17 text

FluxͱCQRS • Action ≒ Command ? • Store͸ɺߋ৽ͷͳ͍ActionΛແࢹ͢Δ • Store.getState() ≒ Query ? • StoreΛ௚઀มߋ͢Δͷ͸ !

Slide 18

Slide 18 text

Flux

Slide 19

Slide 19 text

4UPSF "DUJPO %JTQBUDIFS $PNQPOFOU .PEFM

Slide 20

Slide 20 text

Flux

Slide 21

Slide 21 text

Flux

Slide 22

Slide 22 text

Event Sourcing

Slide 23

Slide 23 text

EventSourcing • ू໿ΛΠϕϯτͷγʔέϯε͔Β࡞Δ • ݱࡏͷঢ়ଶ = ॳظঢ়ଶ + Πϕϯτ • CommandͷΈอଘ͢Ε͹ྑ͍ • ActionΛه࿥͍ͯ͠Ε͹͓̺

Slide 24

Slide 24 text

DispatcherͰه࿥ͯ͠ΈΔ • facebook/flux ͷ Dispatcher Λ֦ு • Πϕϯτͱ࣌ࠁΛه࿥ • replayػೳ

Slide 25

Slide 25 text

No content

Slide 26

Slide 26 text

No content

Slide 27

Slide 27 text

σϞ http://gmork.in/rec-act/

Slide 28

Slide 28 text

·ͱ Ί

Slide 29

Slide 29 text

·ͱΊ • Store = υϝΠϯͱ࣮૷Λͭͳ͙ϙʔτ • Entity͸Storeʹஔ͘ • Redux౳ͩͱEntity࣋ͪʹ͍͘ • ΈΜͳͰStoreߏ଄Խͯ͜͠ʂʂʂʂ