Slide 1

Slide 1 text

Bdashʹ͓͚ΔFluxઃܭ

Slide 2

Slide 2 text

@hokaccha

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

Bdash • Electron੡ͷσεΫτοϓΞϓϦέʔγϣϯ • BIπʔϧͬΆ͍΋ͷ • View͸શͯReact

Slide 6

Slide 6 text

BdashͷFluxઃܭʹ͍ͭͯ

Slide 7

Slide 7 text

• FluxϑϨʔϜϫʔΫະ࢖༻ • ࠷దͳઃܭΛࣗ෼Ͱߟ͑ͳ͕Β࣮૷͍ͯͬͨ͠

Slide 8

Slide 8 text

Domain Logicͷݺͼग़͠

Slide 9

Slide 9 text

Domain Logic • ඳըʹؔ͢Δ͜ͱҎ֎ͷશͯͷॲཧ • Databaseͱͷ΍ΓऔΓͱ͔ • APIݺͼग़͠ͱ͔ • ઃఆͷ؅ཧͱ͔

Slide 10

Slide 10 text

Ͳ͜ʹ͋Δ΂͖͔ • Store? • Actino Creator? • Middleware?

Slide 11

Slide 11 text

No content

Slide 12

Slide 12 text

import { dispatch } from './QueryStore'; import Database from '../lib/Database'; const QueryAction = {}; QueryAction.addNewQuery = params => { Database.Query.create(params).then(query => { dispatch('addNewQuery', { query }); }); }; Action Creator 㲗 Domain Logic

Slide 13

Slide 13 text

• Domain LogicΛFluxͷϑϩʔ͔Β෼཭͢Δ • Action Creator͔Β͸ݺͼग़͚ͩ͢ • Store͸Stateͷߋ৽͚ͩʹ஫ྗ͢Δ

Slide 14

Slide 14 text

• StoreͱDomain Logic͸ςετ͠΍͘͢ͳΔ • Action Creator͕ςετͮ͠Β͍ • શ͕ͯPure functionͱ͍͏ͷ͸ݬ૝ͳͷͰఘΊΔ

Slide 15

Slide 15 text

Storeͷ෼ׂ

Slide 16

Slide 16 text

ͭ·ΓStateΛͲ͏෼ׂ͢Δ͔

Slide 17

Slide 17 text

facebook/flux • Ϧιʔεʁ͝ͱʹStoreΛ෼ׂ͢Δ • DispatcherʹΑΔަ௨੔ཧɺwaitForΛ࢖ͬͨ ґଘͷղܾ͕ඞཁ

Slide 18

Slide 18 text

Redux • StoreΛ෼ׂ͠ͳ͍ʢSingle Stateʣ • StateΛߋ৽͢ΔॲཧʢreducerʣΛ෼ׂ͢Δ • waitFor΍Dispatcher͕ෆཁ • State͕ڊେʹͳΔ

Slide 19

Slide 19 text

Bdash • Page୯ҐͰ෼͚ͯΈͨ • Page͝ͱʹಠཱͨ͠StoreΛ࣋ͭ • Page == Container Component

Slide 20

Slide 20 text

No content

Slide 21

Slide 21 text

• Storeಉ࢜ͷґଘ͕ͳ͍ • waitFor΋Dispatcher΋ෆཁ • StateΛΘ͔Γ΍ཻ͍͢౓Ͱ෼ׂͰ͖Δ Good

Slide 22

Slide 22 text

• PageΛ·͍ͨͩσʔλͷڞ༗͕໘౗ • ෳ਺ͷPageͰಉ͡σʔλΛ࣋ͭ͜ͱ΋͋Δͷ Ͱແବ͕͋Δ Bad

Slide 23

Slide 23 text

PageؒͰͷσʔλڞ༗ • PageؒͰڞ༗͢Δσʔλ͸Domain Logic૚ʹετΞ͢Δ • Page੾Γସ͑࣌ʹຖճDomain Logic૚͔ΒऔΓ௚͢ • αʔόʔαΠυͷ։ൃͱ͍ۙײ֮

Slide 24

Slide 24 text

൚༻తͳઃܭͰ͸ͳ͍ ⚠

Slide 25

Slide 25 text

ΞϓϦέʔγϣϯʹ
 దͨ͠ઃܭΛɻ

Slide 26

Slide 26 text

൓ল఺

Slide 27

Slide 27 text

• ଞʹ΋ಠࣗͷઃܭɾ࣮૷͕͍͔ͭ͋͘Δ • ίϯτϦϏϡʔγϣϯͷෑډ͕ߴ͘ͳΔ • Ϩʔϧʹ৐ͬͨ΄͏͕ઃܭࢥ૝Λڞ༗͢Δ
 ίετ͕ݮΔ

Slide 28

Slide 28 text

Α͔ͬͨ

Slide 29

Slide 29 text

• ݸਓతʹ͸͖Ε͍ʹઃܭͰ͖ͯຬ଍ • ઃܭΛߟ͑Δͷ͸ษڧʹͳΔ

Slide 30

Slide 30 text

Thanks.