Java Zaawansowana: Programowanie funkcjonalne, asynchroniczne i reaktywne

Java Zaawansowana: Programowanie funkcjonalne, asynchroniczne i reaktywne

Szkolenie koncentruje się na współczesnym funkcjonalnym, asynchronicznym i reaktywnym podejściu do programowania w języku Java. Obejmuje badanie NIO2, CompletableFurure, RxJava, Reactor, R2DBC, SSE, Spring Data reactive, WebClient, reactive WebSocket i RSocket.
Kod: JVA-074
Czas trwania: 36 godzin

Opis szkolenia

W naszym kursie przyjrzymy się współczesnym funkcjonalnym i reaktywnym podejściom do programowania w Javie (w celu zwiększenia wydajności backendu). Szkolenie obejmuje takie tematy, jak non-blocking input/output NIO2, asynchroniczne obietnice CompletableFuture, reaktywne biblioteki programowania RxJava i Reactor, asynchroniczny interfejs dostępu DB R2DBC i inne. Zawiera również protokół przesyłania strumieniowego SSE, reaktywne repozytoria Spring Data, protokoły WebClient, WebSocket i RSocket, a także praktyczne przykłady.

Plan szkolenia

Funkcjonalna Java
  • Funkcjonalne interfejsy
  • Odniesienia do metod
  • Strumienie danych
  • Mapuj / filtruj / zmniejszaj
  • Funkcje agregujące
  • Ograniczenie przetwarzania równoległego i sekwencyjnego
  • Łączenie konsumentów
  • Kolektory strumieniowe

Framework wykonawczy. Fork Join pool
  • Korzystanie z executorów
  • Przyszły interfejs
  • Korzystanie z interfejsu wywoływalnego
  • Anulowanie zadań
  • Framework ForkJoin
  • Tworzenie puli i zadań ForkJoin
  • Strumienie równoległe w Javie 8+
  • ForkJoin, strumienie równoległe a testy porównawcze sekwencyjne

Nieblokujące wejście / wyjście
  • Główne różnice między Java NIO i IO
  • Kanał NIO a strumień
  • Zorientowany na strumień a zorientowany na bufor
  • Blocking vs. Non-blocking IO
  • Bufor Java NIO
  • Kanał Java NIO
  • Bufor bezpośredni
  • Mapowany bufor plików
  • Selektor Java NIO
  • Asynchroniczne I/O z NIO
  • Blokada pliku
  • Gotowy do produkcji serwer NIO
  • Architektura serwera Netty

Asynchroniczna Java (Completable Future)
  • Problemy z kodem synchronicznym
  • Architektura NodeJS
  • Przetwarzanie przepływu danych równolegle
  • CompletableFuture sync i async
  • Łączenie, komponowanie i szybsze metody wygrywania
  • Obsługa wyjątków w CompletableFuture
  • Anulowanie CompletableFuture
  • Korzystanie z CompletableFuture do przepływu danych w prawdziwym użyciu

Programowanie reaktywne
  • Co to jest reaktywność?
  • Podstawy RxJava: obserwator i obserwowalny
  • Strumienie reaktywne Java 9
  • Metody efektów ubocznych
  • Obsługa błędów
  • Gorące oraz zimne obserwable
  • Udostępnione i możliwe do podłączenia obserwable
  • Usuwanie obserwabli
  • Operatorzy reaktywni (pełny katalog)
  • Tematy
  • Współbieżność RxJava (harmonogramy)
  • Przeciwciśnienie i płyny
  • Testowanie strumieni reaktywnych

Projekt Reaktor
  • Zależności Reactor Maven
  • Operatory Flux / Mono Reactor
  • Obsługa przeciwciśnienia za pomocą urządzenia Reactor
  • Osoby planujące reaktory
  • Strumień równoległy
  • Zawijanie synchronicznych wywołań blokujących
  • Testowanie z Reactor
  • Procesory reaktorowe

Spring WebFlux i praktyczne programowanie reaktywne
  • Dostęp reaktywny do DB
  • Reaktywne sterowniki R2DBC
  • Repozytorium reaktywne Spring Data
  • Obsługa paginacji
  • WebFlux: funkcjonalne kontrolery
  • Sterowniki Spring REST zwracające wyniki reaktywne (Mono / Flux)
  • Kontrolery Spring REST zwracające SSE
  • WebClient: pobieranie reaktywnych danych z serwera
  • Protokoły SSE i WebSocket
  • Używanie protokołu WebSocket do przekazywania / pobierania danych JSON
  • Używanie protokołu WebSocket do przekazywania / pobierania danych binarnych
  • Protokół RSocket
  • Kontroler RSocket: po stronie serwera
  • Klient RSocket z JSON i wymianą danych binarnych
  • RSocket z równoważeniem obciążenia
  • RSocket z ważonym równoważeniem obciążenia
  • Używanie strumieni reaktywnych z brokerem komunikatów (RabbitMQ)
  • Repozytorium Spring Data MongoDB
  • Testy porównawcze reaktywne: R2DBC vs JDBC i WebFlux vs Web MVC
  • Architektura i wzorce programowania reaktywnego

Cele

  • Przedstawienie wprowadzenia do nowoczesnego programowania asynchronicznego i reaktywnego
  • Przykłady wykorzystania nowoczesnego programowania asynchronicznego i reaktywnego

Grupa docelowa

  • Programiści Java
  • Architekci Java

Wymagania

  • Dobra znajomość języka Java (pożądana znajomość Springa)

Harmonogram w Online Cennik
Zapisz sie na nastepny kurs
+
Wczesniejsza rejestracja gwarantuje priorytet. Powiadomimy panstwa o nastepnym zaplanowanym szkoleniu na ten temat.
Online 3520 zł
Bucharest 3520 zł
Kraków 3520 zł
Wroclaw 3520 zł

Uprzejmie informujemy, że płatność za każde szkolenie będzie realizowana w lokalnie obowiązującej walucie. Jednocześnie informujemy, że podane ceny mogą ulec zmianie w zależności od lokalizacji szkolenia oraz trybu jego realizacji. Do ceny netto widocznej przy wybranym szkoleniu należy doliczyć 23% podatku VAT.

Szkolenia, które mogą Cię zainteresować:
JVA-030
12 godzin
JVA-067
12 godzin
JVA-074 JVA-074102921

Zarejestruj się na następne szkolenie

* - Wymagane pola
Imię*
Nazwisko*
Firma
Email*
Preferred Location
Numer telefonu*
Twój komentarz
Masz jeszcze jakieś pytania?
Skontaktuj się z nami
Thank you.
Your request has been received.