Programowanie reaktywne w języku Java i Spring WebFlux
Czas trwania szkolenia:3 dni (24h)
Kod kursu:RX/WF
Poziom zaawansowania:
O szkoleniu Programowanie reaktywne w języku Java i Spring WebFlux
W cenie otrzymasz:
- Materiały szkoleniowe
- Certyfikat ukończenia szkolenia
- W przypadku szkolenia w trybie stacjonarnym zapewnimy Ci również lunch oraz sprzęt niezbędny do nauki
Dla kogo?
- Szkolenie adresowane do programistów Java, pragnących rozszerzyć swoją wiedzę o zagadnienia z programowania reaktywnego i jego zastosowań w tworzeniu aplikacji
Wymagania
- Praktyczna umiejętność programowania w języku Java
- Podstawowa znajomość mechanizmów związanych z wielowątkowością, strumieniami i aplikacjami webowymi
Zalety
- Zapoznanie zarówno z samą reaktywnością, jak też jej praktycznym wykorzystaniem - wszystko w ramach jednej platformy
- Praktyka przed teorią - wszystkie szkolenia technologiczne prowadzone są w formie warsztatowej. Konieczna teoria jest wyjaśniana na przykładzie praktycznych zadań
- Konkretne umiejętności - w ramach każdego szkolenia rozwijamy praktyczne umiejętności związane z daną technologią i tematyką
- Nauka z praktykami - wszyscy trenerzy na co dzień pracują w projektach, gwarantuje to dostęp do eksperckiej wiedzy i praktycznego know-how
Cele szkolenia
- Zapoznanie uczestników z technikami programowania reaktywnego, zarówno ogólnie, jak i w języku Java (Reactive Streams i Reactor)
- Nauka wykorzystania zdobytej wiedzy do tworzenia reaktywnych aplikacji webowych z użyciem frameworka Spring WebFlux
Program
Wstęp do programowania reaktywnego na platformie Java
- Koncepcja reaktywności (leniwa ewaluacja, brak blokowania, backpressure)
- Reactive Streams - standard reaktywności na platformie JVM
Podstawy biblioteki Reactor
- Mono i Flux jako bazowe strumienie
- Tworzenie Mono i Flux za pomocą gotowych funkcji
- Tworzenie Mono i Flux programowo
- Subskrypcja do strumieni
- Backpressure
Operatory
- Transformacje synchroniczne i asynchroniczne
- Łączenie strumieni
- Grupowanie
- Kombinowanie
- Zależności czasowe
- Event handlery
Obsługa błędów
- Sygnał błędu zamiast rzucania wyjątku
- Fallback statyczny i dynamiczny
- Retry i backoff
Wielowątkowość a reaktywność
- Schedulery
- SubscribeOn
- PublishOn
Debugowanie
- Analiza callstacka
- Reactor Debug Agent
- Checkpointy
Testowanie
- StepVerifier
- Wirtualny czas
Typowe pułapki programowania reaktywnego
- Blokujące operacje podczas przetwarzania strumieni
- Ręczne konstruowanie strumieni zamiast użycia gotowych operatorów
- Brak subskrypcji do strumienia
- Nadużywanie operatorów
Podstawy Spring Reactive Web
- Porównanie z klasycznym WebMvc
- Reaktywny serwer WWW (WebFlux)
- Reaktywny klient REST API
- Sposoby dwustronnej komunikacji klient - serwer (SSE, WebSockets)
- Testowanie reaktywnych aplikacji webowych
Warsztat
- Gra logiczna w modelu klient - serwer z wykorzystaniem Spring WebFlux i WebClient