Trwają zapisy do grupy
Reactive streams w języku Java
Uczestnicy szkolenia nauczą się tworzyć reaktywne aplikacje w języku Java z użyciem biblioteki Reactor.
2150 PLN+23% VAT (2644 PLN brutto / 1 os.)Czas trwania szkolenia:2 dni (16h)
Poziom zaawansowania:
Kod kursu:J/REACTIVE
Reactive streams w języku Java
Cele szkolenia
- Zapoznanie się z zasadami programowania w stylu reaktywnym i dogłębne przećwiczenie dostępnych mechanizmów w bibliotece Reactor
- Praktyczne użycie popularnych narzędzi i bibliotek wspierających tworzenie serwisów reaktywnych - m.in. Spring WebFlux, R2DBC, RSocket
Dla kogo?
- Programiści Java lub języków pochodnych, którzy chcą zapoznać się ze stylem reaktywnym tworzenia aplikacji i najlepszymi praktykami, które pozwalają osiągać nalepsze rezultaty w tworzonym / rozwijanym / utrzymywanym systemie.
Zalety
- Przekrojowe omawianie zagadnień oraz przykłady oparte o życiowe problemy
- Promowanie obowiązujących konwencji i dobrych praktyk programistycznych
- Minimalna teoria oparta na praktycznych przykładach i warsztatach
- Praktyczna wiedza uwzględniająca zmiany wprowadzane do technologii związanych ze stosem reaktywnym w najnowszych wersjach
Wymagania
- Podstawowa umiejętność programowania w języku Java
- Podstawowa znajomość programowania funkcyjnego (w języku Java)
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
Program
Wprowadzenie do programowania reaktywnego
- Asynchroniczność jako podstawa współczesnych systemów informatycznych
- Dodatkowe wymagania stawiane współczesnym systemom - rezyliencja i skalowalność
- Wzorzec Obserwatora a reaktywność
- Zasady programowania funkcyjnego w paradygmacie reaktywnym (deklaratywność, leniwa ewaluacja)
- Reactive Streams jako standard w ekosystemie JVM
- Wizualizacja przepływów przy pomocy diagramów typu Marble
Project Reactor
- Ogólne omówienie biblioteki związanej z ekosystemem Spring
- Tworzenie strumieni reaktywnych
- Przechodzenie pomiędzy światem reaktywnym a synchronicznym
- Cykl życia strumienia (metody typu hook)
- Podstawowe operatory stosowane w ramach strumieni reaktywnych - mapowanie, filtrowanie, redukcja
- Łączenie strumieni i reagowanie na sytuacje wyjątkowe
- Mechanizm Backpressure - rezyliencja w strumieniach reaktywnych
- Operacje typu batch - grupowanie oraz buforowanie
- Przekazywanie kontekstu w ramach operacji
- Rozszerzenia podstawowych operatorów
- Alternatywne rozwiązania do Project Reactor
Testowanie i debugowanie rozwiązań reaktywnych
- Wykorzystanie specjalnych opcji debugowania strumieni reaktywnych w IDE
- Logowanie przepływu strumieni reaktywnych
- StepVerifier - pisanie testów jednostkowych i integracyjncych
- Instrumentalizacja kodu dla wykrycia blokad w kodzie reaktywnym
Praktyczne tworzenie aplikacji w stylu reaktywnym
- System plików a reaktywność
- R2DBC - standard reaktywnej warstwy persystencji
- Spring WebFlux - budowanie usług w stylu reaktywnym we frameworku Spring
- RSocket - reaktywna komunikacja na poziomie TCP
- Eclipse Microprofile i reactive streams (opcjonalnie)
Wirtualne wątki i Structured Concurrency jako alternatywa podejścia reaktywnego (opcjonalnie)
- Problemy podejścia reaktywnego
- Porównanie wątków fizycznych i wirtualnych
- Potencjalne problemy w używaniu wirtualnych wątków
- Structured Concurrency - nowe spojrzenie na programowanie asynchroniczne w Javie
- Popularne frameworki a wirtualne wątki