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)
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