SlideShare ist ein Scribd-Unternehmen logo
1 von 28
Downloaden Sie, um offline zu lesen
/GrandParadePoland
www.grandparade.co.uk
Podział odpowiedzialności
komponentów i ich dekompozycja w
aplikacji React/Redux
Studium przypadków z projektu Sportech
Konrad Kwiatkowski, Senior Frontend Developer / Grand Parade
Co to za projekt?
Jakie wymagania?
/GrandParadePoland
www.grandparade.co.uk
/GrandParadePoland
www.grandparade.co.uk
React i Redux z perspektywy
architektury komponentów
/GrandParadePoland
www.grandparade.co.uk
Architektura komponentów - React
Brak informacji na temat typów komponentów, podziału i ich architektury
/GrandParadePoland
www.grandparade.co.uk
Architektura komponentów - Redux
Propozycja podziału komponentów na:
- Prezentacyjne
- Kontenery
- Inne
/GrandParadePoland
www.grandparade.co.uk
Ogólny podział zastosowany w Sportech
/GrandParadePoland
www.grandparade.co.uk
Architektura komponentów
- Prezentacyjne
- Kontenery
- Komponowane
/GrandParadePoland
www.grandparade.co.uk
Architektura komponentów - dodatkowa klasyfikacja
- Atomowe
- Abstrakcyjne
- Bezstanowe (stateless, pure)
- Stanowe (stateful, impure)
- Wyższego rzędu
/GrandParadePoland
www.grandparade.co.uk
Dlaczego taki podział?
Po co to jest i jak się do niego
zastosować?
/GrandParadePoland
www.grandparade.co.uk
Architektura komponentów
- Czysty interfejs
- Jeden komponent, jedna odpowiedzialność
- Mniejsze komponenty łatwiej użyć ponownie lub się ich pozbyć
/GrandParadePoland
www.grandparade.co.uk
Konkretny problem, case study...
/GrandParadePoland
www.grandparade.co.uk
To nie jest
TodoList
A funkcjonalność do
tworzenia/przygotowania
zakładów
/GrandParadePoland
www.grandparade.co.uk
/GrandParadePoland
www.grandparade.co.uk
DataGrid
● Komponent wyższego rzędu
● Brak związku z danymi
/GrandParadePoland
www.grandparade.co.uk
DataGrid
Komponenty atomowe
wchodzące w jego skład
/GrandParadePoland
www.grandparade.co.uk
Komponent atomowy
/GrandParadePoland
www.grandparade.co.uk
Komponent komponowany
/GrandParadePoland
www.grandparade.co.uk
Komponent abstrakcyjny
/GrandParadePoland
www.grandparade.co.uk
Komponent abstrakcyjny
/GrandParadePoland
www.grandparade.co.uk
Zachowanie stanu, kontener
/GrandParadePoland
www.grandparade.co.uk
Dostarczenie danych, komponent wyższego rzędu
/GrandParadePoland
www.grandparade.co.uk
Dostarczenie danych, komponent wyższego rzędu
/GrandParadePoland
www.grandparade.co.uk
Dostarczenie danych, komponent wyższego rzędu
/GrandParadePoland
www.grandparade.co.uk
Komponent ze stanem wewnętrznym
/GrandParadePoland
www.grandparade.co.uk
Dostarczenie danych, kontener
/GrandParadePoland
www.grandparade.co.uk
Finalne zastosowanie
/GrandParadePoland
www.grandparade.co.uk
Dzięki za uwagę!
/GrandParadePoland
www.grandparade.co.uk

Weitere ähnliche Inhalte

Mehr von Business Link Krakow

Paweł Kowalczyk (Codete) - Continuous integration for iOS
Paweł Kowalczyk (Codete) - Continuous integration for iOSPaweł Kowalczyk (Codete) - Continuous integration for iOS
Paweł Kowalczyk (Codete) - Continuous integration for iOSBusiness Link Krakow
 
Mateusz Zając (Codete) - Swift in Production
Mateusz Zając (Codete)  - Swift in ProductionMateusz Zając (Codete)  - Swift in Production
Mateusz Zając (Codete) - Swift in ProductionBusiness Link Krakow
 
Jakub Mrowiec (Grand Parade Poland) - Monumentum Case Study
Jakub Mrowiec (Grand Parade Poland) - Monumentum Case StudyJakub Mrowiec (Grand Parade Poland) - Monumentum Case Study
Jakub Mrowiec (Grand Parade Poland) - Monumentum Case StudyBusiness Link Krakow
 
Bartosz Zaczyński (Grand Parade Poland) - WebSocket for Dummies
Bartosz Zaczyński (Grand Parade Poland) - WebSocket for DummiesBartosz Zaczyński (Grand Parade Poland) - WebSocket for Dummies
Bartosz Zaczyński (Grand Parade Poland) - WebSocket for DummiesBusiness Link Krakow
 
Piotr Grabski-Gradziński (VML) - To jak zrobimy ten projekt? Czyli o doborze ...
Piotr Grabski-Gradziński (VML) - To jak zrobimy ten projekt? Czyli o doborze ...Piotr Grabski-Gradziński (VML) - To jak zrobimy ten projekt? Czyli o doborze ...
Piotr Grabski-Gradziński (VML) - To jak zrobimy ten projekt? Czyli o doborze ...Business Link Krakow
 
Paweł Dyrek (Codete) - Product Delivery
Paweł Dyrek (Codete) - Product DeliveryPaweł Dyrek (Codete) - Product Delivery
Paweł Dyrek (Codete) - Product DeliveryBusiness Link Krakow
 
Maciej Malarz (Codete) - Database? Meh, implementation detail
Maciej Malarz (Codete) - Database? Meh, implementation detailMaciej Malarz (Codete) - Database? Meh, implementation detail
Maciej Malarz (Codete) - Database? Meh, implementation detailBusiness Link Krakow
 
Mateusz Chłodnicki - Case study: Shuttout.com
Mateusz Chłodnicki - Case study: Shuttout.comMateusz Chłodnicki - Case study: Shuttout.com
Mateusz Chłodnicki - Case study: Shuttout.comBusiness Link Krakow
 
Tomasz Chołast - Case study: zrzutka.pl
Tomasz Chołast - Case study: zrzutka.plTomasz Chołast - Case study: zrzutka.pl
Tomasz Chołast - Case study: zrzutka.plBusiness Link Krakow
 
Mateusz Hauschild - Jak crowdfunding zmienił rynek gier planszowych?
Mateusz Hauschild - Jak crowdfunding zmienił rynek gier planszowych?Mateusz Hauschild - Jak crowdfunding zmienił rynek gier planszowych?
Mateusz Hauschild - Jak crowdfunding zmienił rynek gier planszowych?Business Link Krakow
 
Filip Karkosz & Dominik Szloński - Jak z zaangażowania konsumenta uczynić źró...
Filip Karkosz & Dominik Szloński - Jak z zaangażowania konsumenta uczynić źró...Filip Karkosz & Dominik Szloński - Jak z zaangażowania konsumenta uczynić źró...
Filip Karkosz & Dominik Szloński - Jak z zaangażowania konsumenta uczynić źró...Business Link Krakow
 
Bartosz Filip Malinowski - Crowdsourcing dla Starbucksa, małych startupów i o...
Bartosz Filip Malinowski - Crowdsourcing dla Starbucksa, małych startupów i o...Bartosz Filip Malinowski - Crowdsourcing dla Starbucksa, małych startupów i o...
Bartosz Filip Malinowski - Crowdsourcing dla Starbucksa, małych startupów i o...Business Link Krakow
 
Crowdinvesting - inwestycyjne modele crowdfundingu - Karol Król
Crowdinvesting - inwestycyjne modele crowdfundingu - Karol KrólCrowdinvesting - inwestycyjne modele crowdfundingu - Karol Król
Crowdinvesting - inwestycyjne modele crowdfundingu - Karol KrólBusiness Link Krakow
 
Fundusze UE - nowe szanse, nowe możliwości dla start-up na lata 2014-2020
Fundusze UE - nowe szanse, nowe możliwości dla start-up na lata 2014-2020Fundusze UE - nowe szanse, nowe możliwości dla start-up na lata 2014-2020
Fundusze UE - nowe szanse, nowe możliwości dla start-up na lata 2014-2020Business Link Krakow
 
Paweł Gruszecki - Wybór modelu biznesowego, zarządzanie ryzykiem prawnym
Paweł Gruszecki - Wybór modelu biznesowego, zarządzanie ryzykiem prawnymPaweł Gruszecki - Wybór modelu biznesowego, zarządzanie ryzykiem prawnym
Paweł Gruszecki - Wybór modelu biznesowego, zarządzanie ryzykiem prawnymBusiness Link Krakow
 
Nowe szanse rozwoju dla innowacyjnych projektów z wykorzystaniem funduszy eur...
Nowe szanse rozwoju dla innowacyjnych projektów z wykorzystaniem funduszy eur...Nowe szanse rozwoju dla innowacyjnych projektów z wykorzystaniem funduszy eur...
Nowe szanse rozwoju dla innowacyjnych projektów z wykorzystaniem funduszy eur...Business Link Krakow
 
Regionalny Program Operacyjny (2014-2020)
Regionalny Program Operacyjny (2014-2020)Regionalny Program Operacyjny (2014-2020)
Regionalny Program Operacyjny (2014-2020)Business Link Krakow
 
Kompleksowe doradztwo europejskie dla startupów (1)
Kompleksowe doradztwo europejskie dla startupów  (1)Kompleksowe doradztwo europejskie dla startupów  (1)
Kompleksowe doradztwo europejskie dla startupów (1)Business Link Krakow
 

Mehr von Business Link Krakow (20)

Paweł Kowalczyk (Codete) - Continuous integration for iOS
Paweł Kowalczyk (Codete) - Continuous integration for iOSPaweł Kowalczyk (Codete) - Continuous integration for iOS
Paweł Kowalczyk (Codete) - Continuous integration for iOS
 
Mateusz Zając (Codete) - Swift in Production
Mateusz Zając (Codete)  - Swift in ProductionMateusz Zając (Codete)  - Swift in Production
Mateusz Zając (Codete) - Swift in Production
 
Jakub Mrowiec (Grand Parade Poland) - Monumentum Case Study
Jakub Mrowiec (Grand Parade Poland) - Monumentum Case StudyJakub Mrowiec (Grand Parade Poland) - Monumentum Case Study
Jakub Mrowiec (Grand Parade Poland) - Monumentum Case Study
 
Bartosz Zaczyński (Grand Parade Poland) - WebSocket for Dummies
Bartosz Zaczyński (Grand Parade Poland) - WebSocket for DummiesBartosz Zaczyński (Grand Parade Poland) - WebSocket for Dummies
Bartosz Zaczyński (Grand Parade Poland) - WebSocket for Dummies
 
Piotr Grabski-Gradziński (VML) - To jak zrobimy ten projekt? Czyli o doborze ...
Piotr Grabski-Gradziński (VML) - To jak zrobimy ten projekt? Czyli o doborze ...Piotr Grabski-Gradziński (VML) - To jak zrobimy ten projekt? Czyli o doborze ...
Piotr Grabski-Gradziński (VML) - To jak zrobimy ten projekt? Czyli o doborze ...
 
Paweł Dyrek (Codete) - Product Delivery
Paweł Dyrek (Codete) - Product DeliveryPaweł Dyrek (Codete) - Product Delivery
Paweł Dyrek (Codete) - Product Delivery
 
Maciej Malarz (Codete) - Database? Meh, implementation detail
Maciej Malarz (Codete) - Database? Meh, implementation detailMaciej Malarz (Codete) - Database? Meh, implementation detail
Maciej Malarz (Codete) - Database? Meh, implementation detail
 
Mateusz Chłodnicki - Case study: Shuttout.com
Mateusz Chłodnicki - Case study: Shuttout.comMateusz Chłodnicki - Case study: Shuttout.com
Mateusz Chłodnicki - Case study: Shuttout.com
 
Tomasz Chołast - Case study: zrzutka.pl
Tomasz Chołast - Case study: zrzutka.plTomasz Chołast - Case study: zrzutka.pl
Tomasz Chołast - Case study: zrzutka.pl
 
Mateusz Hauschild - Jak crowdfunding zmienił rynek gier planszowych?
Mateusz Hauschild - Jak crowdfunding zmienił rynek gier planszowych?Mateusz Hauschild - Jak crowdfunding zmienił rynek gier planszowych?
Mateusz Hauschild - Jak crowdfunding zmienił rynek gier planszowych?
 
Filip Karkosz & Dominik Szloński - Jak z zaangażowania konsumenta uczynić źró...
Filip Karkosz & Dominik Szloński - Jak z zaangażowania konsumenta uczynić źró...Filip Karkosz & Dominik Szloński - Jak z zaangażowania konsumenta uczynić źró...
Filip Karkosz & Dominik Szloński - Jak z zaangażowania konsumenta uczynić źró...
 
Marek Cieśla - Kickstarter.com
Marek Cieśla - Kickstarter.comMarek Cieśla - Kickstarter.com
Marek Cieśla - Kickstarter.com
 
Bartosz Filip Malinowski - Crowdsourcing dla Starbucksa, małych startupów i o...
Bartosz Filip Malinowski - Crowdsourcing dla Starbucksa, małych startupów i o...Bartosz Filip Malinowski - Crowdsourcing dla Starbucksa, małych startupów i o...
Bartosz Filip Malinowski - Crowdsourcing dla Starbucksa, małych startupów i o...
 
Crowdinvesting - inwestycyjne modele crowdfundingu - Karol Król
Crowdinvesting - inwestycyjne modele crowdfundingu - Karol KrólCrowdinvesting - inwestycyjne modele crowdfundingu - Karol Król
Crowdinvesting - inwestycyjne modele crowdfundingu - Karol Król
 
Fundusze UE - nowe szanse, nowe możliwości dla start-up na lata 2014-2020
Fundusze UE - nowe szanse, nowe możliwości dla start-up na lata 2014-2020Fundusze UE - nowe szanse, nowe możliwości dla start-up na lata 2014-2020
Fundusze UE - nowe szanse, nowe możliwości dla start-up na lata 2014-2020
 
Pułapki podatkowe
Pułapki podatkowe Pułapki podatkowe
Pułapki podatkowe
 
Paweł Gruszecki - Wybór modelu biznesowego, zarządzanie ryzykiem prawnym
Paweł Gruszecki - Wybór modelu biznesowego, zarządzanie ryzykiem prawnymPaweł Gruszecki - Wybór modelu biznesowego, zarządzanie ryzykiem prawnym
Paweł Gruszecki - Wybór modelu biznesowego, zarządzanie ryzykiem prawnym
 
Nowe szanse rozwoju dla innowacyjnych projektów z wykorzystaniem funduszy eur...
Nowe szanse rozwoju dla innowacyjnych projektów z wykorzystaniem funduszy eur...Nowe szanse rozwoju dla innowacyjnych projektów z wykorzystaniem funduszy eur...
Nowe szanse rozwoju dla innowacyjnych projektów z wykorzystaniem funduszy eur...
 
Regionalny Program Operacyjny (2014-2020)
Regionalny Program Operacyjny (2014-2020)Regionalny Program Operacyjny (2014-2020)
Regionalny Program Operacyjny (2014-2020)
 
Kompleksowe doradztwo europejskie dla startupów (1)
Kompleksowe doradztwo europejskie dla startupów  (1)Kompleksowe doradztwo europejskie dla startupów  (1)
Kompleksowe doradztwo europejskie dla startupów (1)
 

Konrad Kwiatkowski - Type of components in React/Redux