SlideShare a Scribd company logo
Równoległy rozwój
Aplikacji Webowych
czyli jak stworzyć pełnowartościowy produkt przynajmniej 2x szybciej
Chris Ozog - Codesushi CTO
Agenda:
● Coś o mnie…
● Podejście standardowe -
czyli jak to robiliśmy kiedyś
● Podejście zrównoleglone -
czyli jak to robimy teraz
● Narzędzia które nam w tym pomagają
● Case study
● Podsumowanie
Coś o mnie...
● Od ponad dekady twórca aplikacji
webowych
● Uzależniony od czystego kodu
● Lider techniczny w Codesushi
● CodeReviewer z zamiłowania
● Filozof i Developer w jednym…
i co gorsza jest to udokumentowane dwoma dyplomami
Podejście standardowe:
1. User stories
2. Rozpisanie Endpointów
3. Implementacja Endpointów
4. Przekazanie udokumentowanych
Endpointów do FrontEndu
5. Prace Frontowe
6. …
7. Profit
Podejście zrównoleglone:
1. User stories
2. FrontEnd i BackEnd wspólnie ustalają
Endpointy - powstaje kontrakt
3. Tworzymy Mock Api
4. FrontEnd i BackEnd zaczynają pracę
równocześnie
5. W miarę postępu w Api, FrontEnd
przepinia Endpointy z Mock Api na “żywe” Api
6. …
7. Profit
Narzędzia których używamy: Apiary
● Używamy gdy FrontEnd i BackEnd mogą wystartować
równocześnie, lub BackEnd ma opóźniony start
● Zalety
○ Bogate możliwości dokumentowania
○ Dokumentacja i Mock Api w jednym
○ Mock Api nie wymaga dodatkowego setupu
● Wady
○ Konieczność nauczenia się nowego narzędzia
○ Konieczność przepinania frontu
Równoległy rozwój Aplikacji Webowych | Codesushi
Narzędzia których używamy: Symfony + bundle
● Symfony + FOSRestBundle + NelmioAPIDocBundle
○ Używamy gdy FrontEnd startuje z opóźnieniem
○ Backend zwraca na sztywno dane [czasem przydaje się: Faker]
● Zalety
○ Dokumentacja i kod w jednym miejscu
○ Autogeneracja Swaggera + Webowy klient to testowania Api
○ Brak konieczności podmiany Endpointa
● Wady
○ Konieczne jest zaangażowanie developera
○ Dłuższy start projektu
○ Zmiana w Mock Api wymaga zaangażowania BackEndowca
Narzędzia których używamy: Json-server
● Json-server (https://github.com/typicode/json-server)
○ Używamy w momencie gdy FrontEnd rozpoczyna pracę jako pierwszy
○ Prosty server który zwraca pliki json
● Zalety
○ Prostota
○ Mock Api może być wersjonowane wraz z projektem
○ Każdy developer może dokonać poprawek
● Wady
○ Wymaga zaangażowania developera do zmiany Mock Api
○ Oferuje tylko Mock Api, o dokumentację trzeba zadbać osobno
○ Zmiany w kontrakcie mogą pozostać niezauważone
Case study:
● Projekt dotyczył zbudowania od nowa mechanizmu zamawiania obozów sportowych
● Zespół
○ 1x BackEnd od klienta
○ 1.5x BackEnd Codesushi
○ 1x FrontEnd Codesushi
● Poprzednia wersja z mniejszą ilością funkcjonalności powstała w 12 miesięcy, a
wersja przy której pracowaliśmy powstała w 3 miesiące
● FrontEnd: Angular 1.5.11
● BackEnd: Symfony 2.8
● Apiary zostało wykorzystane w pierwszym etapie projektu
● W późniejszym etapie wykorzystaliśmy: Symfony + bundle
Równoległy rozwój Aplikacji
Webowych - Podsumowanie:
● Umożliwia atak na wielu frontach
● Developerzy działają w oparciu o kontrakt - co daje większą
swobodę w planowaniu
● FrontEnd nie jest blokowany przez BackEnd
● Zastosowanie jedynie wtedy gdy możemy całkowicie odseparować
FrontEnd od BackEndu (Angular, Ember, Backbone, React)
● Doskonale nadaje się do tworzenia Minimum Viable Product [MVP]
Dziękuję za uwagę :)
e-mail: hello@codesushi.co
www: codesushi.coKrzysztof Ożóg
Codesushi CTO

More Related Content

PDF
Gherkin - jak zostać poetą w IT
PDF
Praktyczne porady na temat optymalizacji wydajności aplikacji tworzonych z u...
PDF
REvolution, czyli o bardziej obiektowym podejściu w Railsach
PPTX
Najlepsze praktyki testowania aplikacji ASP.NET
PDF
Wstęp do Gitlab CI/CD w aplikacjach napisanych w Laravel
PDF
Nie tylko C# - Ekosystem Microsoft dla programistów
PDF
Historia jednej migracji - Angular 5
PDF
Techniczna organizacja zespołu
Gherkin - jak zostać poetą w IT
Praktyczne porady na temat optymalizacji wydajności aplikacji tworzonych z u...
REvolution, czyli o bardziej obiektowym podejściu w Railsach
Najlepsze praktyki testowania aplikacji ASP.NET
Wstęp do Gitlab CI/CD w aplikacjach napisanych w Laravel
Nie tylko C# - Ekosystem Microsoft dla programistów
Historia jednej migracji - Angular 5
Techniczna organizacja zespołu

Similar to Równoległy rozwój Aplikacji Webowych | Codesushi (20)

PDF
Girls in It - Front-end & Back-end. Jak zacząć
PDF
Tomasz Głogosz: SharePoint Framework - nowa jakość w client-side development
PPTX
DevOps - what I have learnt so far
PDF
Od zera do Automattica
PDF
CI oraz CD w złożonym projekcie o małym budżecie
PDF
Produkcja aplikacji internetowych
PDF
Jak stworzyć aplikacje mobilne wysoko ocenianie przez użytkowników? - Case St...
PDF
Jak zarabiać na testowaniu oprogramowania(konferencja MeeTTech Piła 27.07.2016)
PDF
Projektowanie stron www dla ngo i projektow eko - case study
PDF
university day 1
PDF
HYC - Angular stań się kanciastym
PDF
Architektura serwisu gg.pl 2 przemek łącki (2)
PDF
Strona w rękach klienta: o czym pamiętać, aby ułatwić pracę edytorom treści [PL]
PPT
User Experience – wpływ internetu na aplikacje enterprise - Netcamp #14
PPTX
Techniczna organizacja zespołu cz 2
PDF
ES2015 / ES6 Podstawy nowoczesnego JavaScriptu
ODP
4Developers 2015: Rozpraszanie offline aplikacji zcentralizowanej online - Łu...
PDF
4Developers 2018: Sagi na frontendzie - czyli jak ułatwić sobie pracę ze skom...
PPTX
Programowanie na wiele platform mobilnych - 2012
PPTX
4Developers 2015: "Eksperckość" pułapka na UX Designera - Arkadiusz Smółko...
Girls in It - Front-end & Back-end. Jak zacząć
Tomasz Głogosz: SharePoint Framework - nowa jakość w client-side development
DevOps - what I have learnt so far
Od zera do Automattica
CI oraz CD w złożonym projekcie o małym budżecie
Produkcja aplikacji internetowych
Jak stworzyć aplikacje mobilne wysoko ocenianie przez użytkowników? - Case St...
Jak zarabiać na testowaniu oprogramowania(konferencja MeeTTech Piła 27.07.2016)
Projektowanie stron www dla ngo i projektow eko - case study
university day 1
HYC - Angular stań się kanciastym
Architektura serwisu gg.pl 2 przemek łącki (2)
Strona w rękach klienta: o czym pamiętać, aby ułatwić pracę edytorom treści [PL]
User Experience – wpływ internetu na aplikacje enterprise - Netcamp #14
Techniczna organizacja zespołu cz 2
ES2015 / ES6 Podstawy nowoczesnego JavaScriptu
4Developers 2015: Rozpraszanie offline aplikacji zcentralizowanej online - Łu...
4Developers 2018: Sagi na frontendzie - czyli jak ułatwić sobie pracę ze skom...
Programowanie na wiele platform mobilnych - 2012
4Developers 2015: "Eksperckość" pułapka na UX Designera - Arkadiusz Smółko...
Ad

More from Krzysztof (Chris) Ozog (16)

PDF
Code Camp NYC 2017 - How to deal with everything... | Chris Ozog - Codesushi
PDF
21st century problem… the cost of it department!
PDF
Codesushi: Code review z korzyściami dla recenzenta i recenzowanego
PDF
Why I stopped worrying and loved PHP | Codesushi - Krakow 2017
PDF
Parallel development of Web Apps | Codesushi - Gliwice 2017
PDF
How to create a WordPress not understanding WordPress, so more on the headles...
PDF
Asynchronous PHP | Codesushi - Warsaw 2017
PDF
The automation of the process of caring for the quality of the code in PHP an...
PDF
How to protect your code against a destructive influence of client | Codesush...
PDF
Migration from drupal 7 to drupal 8
PDF
Headless approach and acquia - case study | Codesushi
PDF
Asynchroniczny PHP | Codesushi
PDF
Jak uchronić Twój piękny kod przed destrukcyjnym wpływem klienta | Codesushi
PDF
Why I stopped worrying and LOVED PHP | Codesushi
PDF
Inner Symfony’s Daemons
PDF
Speed up your zombies! - Bootstrap dev environment in 5 minutes!
Code Camp NYC 2017 - How to deal with everything... | Chris Ozog - Codesushi
21st century problem… the cost of it department!
Codesushi: Code review z korzyściami dla recenzenta i recenzowanego
Why I stopped worrying and loved PHP | Codesushi - Krakow 2017
Parallel development of Web Apps | Codesushi - Gliwice 2017
How to create a WordPress not understanding WordPress, so more on the headles...
Asynchronous PHP | Codesushi - Warsaw 2017
The automation of the process of caring for the quality of the code in PHP an...
How to protect your code against a destructive influence of client | Codesush...
Migration from drupal 7 to drupal 8
Headless approach and acquia - case study | Codesushi
Asynchroniczny PHP | Codesushi
Jak uchronić Twój piękny kod przed destrukcyjnym wpływem klienta | Codesushi
Why I stopped worrying and LOVED PHP | Codesushi
Inner Symfony’s Daemons
Speed up your zombies! - Bootstrap dev environment in 5 minutes!
Ad

Równoległy rozwój Aplikacji Webowych | Codesushi

  • 1. Równoległy rozwój Aplikacji Webowych czyli jak stworzyć pełnowartościowy produkt przynajmniej 2x szybciej Chris Ozog - Codesushi CTO
  • 2. Agenda: ● Coś o mnie… ● Podejście standardowe - czyli jak to robiliśmy kiedyś ● Podejście zrównoleglone - czyli jak to robimy teraz ● Narzędzia które nam w tym pomagają ● Case study ● Podsumowanie
  • 3. Coś o mnie... ● Od ponad dekady twórca aplikacji webowych ● Uzależniony od czystego kodu ● Lider techniczny w Codesushi ● CodeReviewer z zamiłowania ● Filozof i Developer w jednym… i co gorsza jest to udokumentowane dwoma dyplomami
  • 4. Podejście standardowe: 1. User stories 2. Rozpisanie Endpointów 3. Implementacja Endpointów 4. Przekazanie udokumentowanych Endpointów do FrontEndu 5. Prace Frontowe 6. … 7. Profit
  • 5. Podejście zrównoleglone: 1. User stories 2. FrontEnd i BackEnd wspólnie ustalają Endpointy - powstaje kontrakt 3. Tworzymy Mock Api 4. FrontEnd i BackEnd zaczynają pracę równocześnie 5. W miarę postępu w Api, FrontEnd przepinia Endpointy z Mock Api na “żywe” Api 6. … 7. Profit
  • 6. Narzędzia których używamy: Apiary ● Używamy gdy FrontEnd i BackEnd mogą wystartować równocześnie, lub BackEnd ma opóźniony start ● Zalety ○ Bogate możliwości dokumentowania ○ Dokumentacja i Mock Api w jednym ○ Mock Api nie wymaga dodatkowego setupu ● Wady ○ Konieczność nauczenia się nowego narzędzia ○ Konieczność przepinania frontu
  • 8. Narzędzia których używamy: Symfony + bundle ● Symfony + FOSRestBundle + NelmioAPIDocBundle ○ Używamy gdy FrontEnd startuje z opóźnieniem ○ Backend zwraca na sztywno dane [czasem przydaje się: Faker] ● Zalety ○ Dokumentacja i kod w jednym miejscu ○ Autogeneracja Swaggera + Webowy klient to testowania Api ○ Brak konieczności podmiany Endpointa ● Wady ○ Konieczne jest zaangażowanie developera ○ Dłuższy start projektu ○ Zmiana w Mock Api wymaga zaangażowania BackEndowca
  • 9. Narzędzia których używamy: Json-server ● Json-server (https://github.com/typicode/json-server) ○ Używamy w momencie gdy FrontEnd rozpoczyna pracę jako pierwszy ○ Prosty server który zwraca pliki json ● Zalety ○ Prostota ○ Mock Api może być wersjonowane wraz z projektem ○ Każdy developer może dokonać poprawek ● Wady ○ Wymaga zaangażowania developera do zmiany Mock Api ○ Oferuje tylko Mock Api, o dokumentację trzeba zadbać osobno ○ Zmiany w kontrakcie mogą pozostać niezauważone
  • 10. Case study: ● Projekt dotyczył zbudowania od nowa mechanizmu zamawiania obozów sportowych ● Zespół ○ 1x BackEnd od klienta ○ 1.5x BackEnd Codesushi ○ 1x FrontEnd Codesushi ● Poprzednia wersja z mniejszą ilością funkcjonalności powstała w 12 miesięcy, a wersja przy której pracowaliśmy powstała w 3 miesiące ● FrontEnd: Angular 1.5.11 ● BackEnd: Symfony 2.8 ● Apiary zostało wykorzystane w pierwszym etapie projektu ● W późniejszym etapie wykorzystaliśmy: Symfony + bundle
  • 11. Równoległy rozwój Aplikacji Webowych - Podsumowanie: ● Umożliwia atak na wielu frontach ● Developerzy działają w oparciu o kontrakt - co daje większą swobodę w planowaniu ● FrontEnd nie jest blokowany przez BackEnd ● Zastosowanie jedynie wtedy gdy możemy całkowicie odseparować FrontEnd od BackEndu (Angular, Ember, Backbone, React) ● Doskonale nadaje się do tworzenia Minimum Viable Product [MVP]
  • 12. Dziękuję za uwagę :) e-mail: hello@codesushi.co www: codesushi.coKrzysztof Ożóg Codesushi CTO