Szkolenie
GraphQL + React + Apollo 

Zapraszamy na 3-dniowe intensywne warsztaty szkoleniowe z GraphQL + React + Apollo. Na szkoleniu nauczymy się jak zbudować serwer w GraphQL(Apollo Server) i wykorzystać te dane w aplikacji frontendowej(Apollo Client + React). Proponujemy kompleksowe podejście aby wykorzystać w pełni zalety jakie daje nam GraphQL.

GraphQL to open-source’owy język do komunikacji z API, i jednocześnie cały ekosystem który wypełnia zapytania już istniejącymi danymi. Najważniejszym konceptem GraphQL jest silne typowanie danych – jest to “kontrakt” pomiędzy klientem a serwerem na podstawie którego odbywa się komunikacja.

Facebook stworzył ten standard jako alternatywa dla REST’a, która odpowiada na potrzeby budowy skomplikowanych aplikacji pod kątem danych. Na naszym szkoleniu przejdziemy przez niezbędne podstawy aż po bardzo zaawansowane aspekty budowy dużych, skalowalnych aplikacji nastawionych na
użytkowników.

Podczas tego spotkania nauczymy się jak zbudować serwer w GraphQL(Apollo Server) i wykorzystać te dane w aplikacji frontendowej(Apollo Client + React). Proponujemy kompleksowe podejście aby wykorzystać w pełni zalety jakie daje nam GraphQL.

Kod na szkoleniu będzie poparty testami, pokażemy najlepsze praktyki w tworzeniu testowalnego kodu.

 

Dla kogo?

Szkolenie kierujemy do programistów, którzy już piszą aplikacje Reactowe. Umiejętności, które
powinieneś mieć przychodząc na warsztaty:

  • React: umiesz stworzyć komponent, zrobić hierarchię / drzewko komponentów i przekazywać dane
  • Znasz ogólne zasady komunikacji sieciowej po HTTP

 

Agenda

Wstęp do GraphQL

  • architektura – omówienie jak działa cały ekosystem
  • schema – jak pisać dobrą i reużywalną scheme na serwerze – patterny i best practises
  • query i mutacje – w jaki sposób najlepiej przełożyć wymagania na zapytania
  •  jak działa serwer GraphQL “pod maską” – różnice z REST API
  • serwowanie danych (http, websockety)
  • spięcie serwera GraphQL z różnymi źródłami danych

Projektowanie schemy

  • wstęp do schemy – omówienie składni typowania schemy
  • typy obiektów i typy pól
  • argumenty pól
  • interfejsy, enumy, scalar types, unie, listy, inputy
  • query, mutacje i subskrypcje – pobieranie i zapisywanie danych na serwer
  • operowanie na danych

Środowisko: Apollo Server + React + Apollo Client

  • Wypełnienie schemy danymi (resolvers + data source)
  • Reużywalność danych na serwerze – caching
  • Zaawansowane resolvery – jak dostarczyć dane do nawet bardzo skomplikowanych zapytań
  • Egzekucja zapytań – dokładne przykłady co krok po kroku dzieje się na serwerze podczas wykonywania zapytania GraphQL od klienta
  • playground – testowanie zapytań GraphQL w przeglądarce
  • Apollo client – wpięcie się w serwer
  • Wykorzystanie Hooków i High Order Componentów do pobierania danych w React
  • Lokalny Cache w kliencie

Apollo Server

  • jak działają resolvery + modularyzacja i skalowalność resolverów
  • monitorowanie danych
  • pobieranie i serwowanie danych z istniejących API REST
  • pobieranie i serwowanie danych bezpośrednio z bazy danych
  • memcache/redis jako cache serwerowy
  • federacje – kolekcja serwisów GraphQL do skalowania dla dużych środowisk
  • antypatterny
  • paginacja – jak zarządzać nieskończoną ilością danych – różne podejścia do implementacji paginacji
  • autentykacja i autoryzacja użytkowników

Apollo Client & React

  • fetching danych – wykonanie query przez hooks/HOC
  • lokalne zarządzanie stanem
  • paginacja i nieskończone listy
  • optimistic update – modyfikacja lokalnego cache
  • autentykacja i autoryzacja
  • fragments – jak re-użyć istniejące już query
  • typowanie – tooling do generowania typów na podstawie schemy

Error Handling

  • Typy i rodzaje błędów(np. brak uprawnień, dany obiekt nie istnieje)
  • Implementacja schemy i resolverów aby reagować na błędy
  • Obsługa błędów po stronie klienta

Skomplikowane struktury danych

  • Łączenie różnych źródeł danych do jednej schemy aby była przyjazna dla klienta
  • Jak sobie radzić z bardzo zagnieżdzonymi/rozproszonymi strukturami

Testowanie servera i klienta

  • Jest – testowanie Reacta i Apollo client
  • Enzyme – tworzenie zmockowanych komponentow (shallow vs mount)
  • Testowanie schemy
  • Testowanie resolverów na serwerze

9. Metryki, Monitoring i Deployment

  • Deployment aplikacji na AWS Lambda
  • Monitorowanie aplikacji i reagowanie na błędy
  • Analiza danych i optymalizacja środowiska

 

100% praktyki

Podczas warsztatów pod okiem trenera uczestnicy od podstaw stworzą odpowiednik popularnego narzędzia Yelp, poznając omawiane narzędzia oraz techniki zaawansowanych aspektów związanych z GraphQL Apollo Server + Client i React.

Oprócz aspektów związanych z implementacją, przejdziemy samodzielnie przez przygotowanie środowiska developerskiego, przygotowanie aplikacji do wypuszczenia na produkcję, testowanie oraz deployment.

Informacje praktyczne

Kiedy?
Warsztaty wewnętrzne: termin do indywidualnego ustalenia z Waszym zespołem

Gdzie?
Dowolne miasto w Polsce

Uczestnicy
Od 4 do 12 osób

Kontakt i zapytania ofertowe
Piotr Zwoliński, CEO
[email protected]
Tel: + 48 784 811 497

Trener

Arkadiusz Smyk
LinkedIN

Software Engineer i frontendowiec z pasji. Na co dzień pracuje jako inżynier, a po godzinach lubię dzielić się wiedzą. Aktywnie biorę też udział w mentoringu nowych osób które są na początku kariery

Pobierz agendę tego szkolenia w formacie PDF:
agenda_szkolenia_developers_peak.pdf

Zainteresowany szkoleniem?
Piotr Zwoliński, CEO
[email protected], tel: + 48 784 811 497