[FDD 2017] Sebastian Kremiec - Flux — architektura aplikacji dla budowania UI

33

Transcript of [FDD 2017] Sebastian Kremiec - Flux — architektura aplikacji dla budowania UI

Page 1: [FDD 2017] Sebastian Kremiec - Flux — architektura aplikacji dla budowania UI
Page 2: [FDD 2017] Sebastian Kremiec - Flux — architektura aplikacji dla budowania UI

Budowanie UI - problemy

Sebastian Kremiec

Flux — architektura aplikacji dla budowania UI

Page 3: [FDD 2017] Sebastian Kremiec - Flux — architektura aplikacji dla budowania UI

Budowanie UI - problemy wyzwania

Sebastian Kremiec

Flux — architektura aplikacji dla budowania UI

Page 4: [FDD 2017] Sebastian Kremiec - Flux — architektura aplikacji dla budowania UI

Budowanie UI - problemy wyzwania

■ spójność komponentów

Sebastian Kremiec

Flux — architektura aplikacji dla budowania UI

Page 5: [FDD 2017] Sebastian Kremiec - Flux — architektura aplikacji dla budowania UI

Budowanie UI - problemy wyzwania

■ spójność komponentów■ mnogość zdarzeń

Sebastian Kremiec

Flux — architektura aplikacji dla budowania UI

Page 6: [FDD 2017] Sebastian Kremiec - Flux — architektura aplikacji dla budowania UI

Budowanie UI - problemy wyzwania

■ spójność komponentów■ mnogość zdarzeń■ debugowanie

Sebastian Kremiec

Flux — architektura aplikacji dla budowania UI

Page 7: [FDD 2017] Sebastian Kremiec - Flux — architektura aplikacji dla budowania UI

Budowanie UI - problemy wyzwania

■ spójność komponentów■ mnogość zdarzeń■ debugowanie■ testowanie

Sebastian Kremiec

Flux — architektura aplikacji dla budowania UI

Page 8: [FDD 2017] Sebastian Kremiec - Flux — architektura aplikacji dla budowania UI

Spójność komponentów

Sebastian Kremiec

Flux — architektura aplikacji dla budowania UI

Page 9: [FDD 2017] Sebastian Kremiec - Flux — architektura aplikacji dla budowania UI

Spójność komponentów

■ niezależne komponenty■ każdy musi sobie pobrać dane do wyświetlania

Sebastian Kremiec

Flux — architektura aplikacji dla budowania UI

Page 10: [FDD 2017] Sebastian Kremiec - Flux — architektura aplikacji dla budowania UI

Spójność komponentów: globalny stan

Sebastian Kremiec

Flux — architektura aplikacji dla budowania UI

Page 11: [FDD 2017] Sebastian Kremiec - Flux — architektura aplikacji dla budowania UI

Mnogość zdarzeń

Sebastian Kremiec

Flux — architektura aplikacji dla budowania UI

Page 12: [FDD 2017] Sebastian Kremiec - Flux — architektura aplikacji dla budowania UI

Mnogość zdarzeń

■ działania użytkownika■ rezultaty asynchronicznych akcji■ zdarzenia z zewnątrz

Sebastian Kremiec

Flux — architektura aplikacji dla budowania UI

Page 13: [FDD 2017] Sebastian Kremiec - Flux — architektura aplikacji dla budowania UI

Mnogość zdarzeń: mody�kowanie stanu nie wprost

Sebastian Kremiec

Flux — architektura aplikacji dla budowania UI

Page 14: [FDD 2017] Sebastian Kremiec - Flux — architektura aplikacji dla budowania UI

Mnogość zdarzeń: mody�kowanie stanu nie wprost

reduce(currentState, action) -> newState

Sebastian Kremiec

Flux — architektura aplikacji dla budowania UI

Page 15: [FDD 2017] Sebastian Kremiec - Flux — architektura aplikacji dla budowania UI

Mnogość zdarzeń: mody�kowanie stanu nie wprost

reduce(currentState, action) -> newState

reduce( ● , □ ) → ■

Sebastian Kremiec

Flux — architektura aplikacji dla budowania UI

Page 16: [FDD 2017] Sebastian Kremiec - Flux — architektura aplikacji dla budowania UI

Mnogość zdarzeń: mody�kowanie stanu nie wprost

reduce(currentState, action) -> newState

reduce( ● , □ ) → ■

reduce( ● , 🖌) → ●

Sebastian Kremiec

Flux — architektura aplikacji dla budowania UI

Page 17: [FDD 2017] Sebastian Kremiec - Flux — architektura aplikacji dla budowania UI

Mnogość zdarzeń: kolejkowanie akcji

Sebastian Kremiec

Flux — architektura aplikacji dla budowania UI

Page 18: [FDD 2017] Sebastian Kremiec - Flux — architektura aplikacji dla budowania UI

Debugowanie

Sebastian Kremiec

Flux — architektura aplikacji dla budowania UI

Page 19: [FDD 2017] Sebastian Kremiec - Flux — architektura aplikacji dla budowania UI

Debugowanie

■ jeden punkt wejścia

Sebastian Kremiec

Flux — architektura aplikacji dla budowania UI

Page 20: [FDD 2017] Sebastian Kremiec - Flux — architektura aplikacji dla budowania UI

Debugowanie

■ jeden kierunek przepływu danych

Sebastian Kremiec

Flux — architektura aplikacji dla budowania UI

Page 21: [FDD 2017] Sebastian Kremiec - Flux — architektura aplikacji dla budowania UI

Debugowanie

■ brak efektów ubocznych (seria transformacji stanu)

Sebastian Kremiec

Flux — architektura aplikacji dla budowania UI

Page 22: [FDD 2017] Sebastian Kremiec - Flux — architektura aplikacji dla budowania UI

Testowanie

Sebastian Kremiec

Flux — architektura aplikacji dla budowania UI

Page 23: [FDD 2017] Sebastian Kremiec - Flux — architektura aplikacji dla budowania UI

Testowanie

■ oddzielenie logiki od samego wyświetlania

Sebastian Kremiec

Flux — architektura aplikacji dla budowania UI

Page 24: [FDD 2017] Sebastian Kremiec - Flux — architektura aplikacji dla budowania UI

Testowanie

■ możliwość testowania logiki jednostkowo

Sebastian Kremiec

Flux — architektura aplikacji dla budowania UI

Page 25: [FDD 2017] Sebastian Kremiec - Flux — architektura aplikacji dla budowania UI

Testowanie

■ testowanie wyświetlania w separacji

Sebastian Kremiec

Flux — architektura aplikacji dla budowania UI

Page 26: [FDD 2017] Sebastian Kremiec - Flux — architektura aplikacji dla budowania UI

Dodatkowe zalety

Sebastian Kremiec

Flux — architektura aplikacji dla budowania UI

Page 27: [FDD 2017] Sebastian Kremiec - Flux — architektura aplikacji dla budowania UI

Dodatkowe zalety

■ wzorzec projektowy wysokiego poziomu

Sebastian Kremiec

Flux — architektura aplikacji dla budowania UI

Page 28: [FDD 2017] Sebastian Kremiec - Flux — architektura aplikacji dla budowania UI

Dodatkowe zalety

■ wzorzec projektowy wysokiego poziomu■ łatwość wprowadzania zmian w UI

Sebastian Kremiec

Flux — architektura aplikacji dla budowania UI

Page 29: [FDD 2017] Sebastian Kremiec - Flux — architektura aplikacji dla budowania UI

Dodatkowe zalety

■ wzorzec projektowy wysokiego poziomu■ łatwość wprowadzania zmian w UI■ skalowalność

Sebastian Kremiec

Flux — architektura aplikacji dla budowania UI

Page 30: [FDD 2017] Sebastian Kremiec - Flux — architektura aplikacji dla budowania UI

Dodatkowe zalety

Sebastian Kremiec

Flux — architektura aplikacji dla budowania UI

Page 31: [FDD 2017] Sebastian Kremiec - Flux — architektura aplikacji dla budowania UI

Co dalej?

■ dokumentacja Facebooka: https://facebook.github.io/flux/

■ gotowe implementacje: ■ Flux ;-)■ FlexDotNet■ FlexJava

■ Do It Yourself

Sebastian Kremiec

Flux — architektura aplikacji dla budowania UI

Page 32: [FDD 2017] Sebastian Kremiec - Flux — architektura aplikacji dla budowania UI

Sebastian Kremiec

Flux — architektura aplikacji dla budowania UI

Page 33: [FDD 2017] Sebastian Kremiec - Flux — architektura aplikacji dla budowania UI