Spring WebFlux: Programowanie reaktywne w Javie z wykorzystaniem frameworka Spring

by:
Czas trwania 3 dni
Średnia ocena kursu 4.92/5 Ocena pochodzi z ankiet

Najbliższe terminy tego szkolenia

29.07 31.07 Termin gwarantowany Szkolenie online Ostatnie miejsca!
Zapisz się
28.10 30.10 Termin gwarantowany Szkolenie online Ostatnie miejsca!
Zapisz się

Szkolenie
dedykowane
dla Twojego
zespołu

Cena szkolenia 2400 PLN (netto)

Standardy JSystems

  1. Wszyscy nasi trenerzy muszą być praktykami i osiągać średnią z ankiet minimum 4.75 na 5. Nie ma wśród nas trenerów-teoretyków. Każdy trener JSystems ma bogate doświadczenie komercyjne w zakresie tematów z których prowadzi szkolenia.
  2. Wszystkie szkolenia mają format warszatowy. Każde zagadnienie teoretyczne jest poparte rzędem warsztatów w ściśle określonym formacie.
  3. Terminy gwarantowane na 100%. Jeśli jakiś termin jest oznaczony jako gwarantowany, oznacza to że odbędzie się nawet jeśli część grupy wycofa się z udziału. Ryzyko ponosimy my jako organizator.
Zapisz się
Program szkolenia
  1. Wstęp do programowania reaktywnego
    • Definicja tego czym jest programowanie reaktywne
    • Powody wprowadzenia podejścia reaktywnego
      • marnowanie zasobów
      • problemy ze skalowalnością
    • Demo - porównanie działania aplikacji napisanej w sposób zwykły i reaktywny
    • Kiedy nie stosować podejścia reaktywnego
  2. Reactive Streams jako specyfikacja programowania reaktywnego
    • Składowe specyfikacji (kod, testy, specyfikacja tekstowa)
    • Interfejsy
      • Publisher - nadawca elementów
      • Subscriber - odbiorca elementów
      • Subscription - połączenie między nadawcą i odbiorcą
    • Przebieg subskrypcji (rozpoczęcie, żądanie elementów, zakończenie)
    • Backpressure i nieograniczona subskrypcja
    • Przegląd zaawansowanych reguł dotyczących subskrypcji
  3. Podstawy frameworka Reactor
    • Ogólne cechy frameworka
    • Mono i Flux jako podstawowe klasy
    • Marble diagrams
    • Flux - strumień wielu elementów
      • Tworzenie z gotowych elementów
      • Tworzenie programowe
    • Mono - strumień jednoelementowy
    • Subskrypcja do strumieni
      • Poprzez callbacki
      • Poprzez BaseSubscriber
    • Anulowanie subskrypcji
  4. Operatory
    • Ogólne działanie operatora
      • wpięcie w łańcuch subskrypcji
      • upstream, downstream
    • Mapowanie
      • synchroniczne ( map() )
      • asynchroniczne ( flatMap() , concatMap() )
    • Filtrowanie ( filter() , take() , skip() )
    • Redukowanie ( reduce() )
    • Łączenie strumieni
      • tych samych typów ( merge() , concat() )
      • różnych typów ( zip() )
    • Zależności czasowe
      • opóźnianie elementów ( delayElements() )
      • uruchamianie strumienia po zakończeniu poprzedniego ( then() )
    • Tworzenie własnych operatorów ( transform() )
    • Jak wybrać potrzebny operator - porady praktyczne
  5. Obsługa błędów
    • Sygnał błędu zamiast rzucania wyjątku
    • Błąd podczas subskrypcji
    • Zastąpienie sygnału błędu
      • Za pomocą elementu
      • Za pomocą sekwencji
    • Przemapowanie błędu
    • Dodatkowa akcja przy wystąpieniu błędu
    • Resubskrypcja do strumienia
  6. Testowanie
    • Przedstawienie testowych klas pomocniczych oferowanych przez Reactor
    • StepVerifier - weryfikacja emisji danych przez strumień
      • Tworzenie
      • Nakładanie asercji
      • Uruchamianie testu
      • Użycie wirtualnego czasu
    • TestPublisher - możliwość manipulacji emisją danych do strumienia
      • Tworzenie
      • Emitowanie danych
  7. Debugowanie
    • Analiza callstacka rzucanego przez Reactor
    • Włączanie trybu debugowania
      • Jako globalny hook
      • Jako Java Agent
    • Checkpointy
    • Logowanie zachowania strumienia za pomocą operatora log()
  8. Reactor a wielowątkowość
    • Scheduler jako abstrakcja wyboru wątku
    • Predefiniowane i customowe schedulery
    • Zmiana wątku emisji elementów - operator publishOn()
    • Zmiana wątku tworzenia elementów - operator subscribeOn()
    • Równoległe przetwarzanie danych w strumieniu
  9. Typowe pułapki programowania reaktywnego
    • Brak subskrypcji
    • Operacje wykonane przed subskrypcją
    • Blokujące operacje w operatorach
    • Nadmiar operatorów
    • Ręczne tworzenie strumieni
  10. Framework Spring - podejście reaktywne
    • Ogólny opis stosu reaktywnego w Springu
    • Reaktywny serwer HTTP - WebFlux
      • Podejście adnotacyjne
      • Podejście funkcyjne
      • Technika SSE (Server-Sent-Events)
      • WebSockets
    • Reaktywny klient HTTP - WebClient
      • Tworzenie i użycie
      • Łączenie kilku operacji
  11. Warsztat - implementacja gry MasterMind w podejściu reaktywnym z wykorzystaniem Springa
    • Przedstawienie wymagań, ogólnego zarysu architektury i dostarczonych narzędzi
    • Implementacja części serwerowej
    • Implementacja części klienckiej

Opis szkolenia

Szkolenie odbywa się na żywo z udziałem trenera. Nie jest to forma kursu video!

O skoleniu w skrócie

Szkolenie przeznaczone jest głównie dla dwóch kategorii uczestników:

  • osób mających doświadczenie w programowaniu w Javie oraz Springu i chcących się nauczyć w sposób praktyczny programowania reaktywnego z użyciem ww. narzędzi
  • osób, które mają już praktyczne doświadczenie w programowaniu reaktywnym, ale odczuwają potrzebę lepszego zapoznania się z teorią (lub jej ugruntowania)
W pierwszych dwóch dniach szkolenia przeważają zadania praktyczne (60%), niemniej jednak na samym początku duży nacisk jest kładziony na teorię; z doświadczenia wiemy, że to procentuje w dalszej części zajęć. Trzeci dzień jest dniem w całości warsztatowym - wykorzystujemy tu wiedzę zdobytą w trakcie poprzednich dni szkolenia.

br>

Prowadzący szkolenie: Marcin Chrost



Jestem programistą z ponad 15-letnim doświadczeniem. W trakcie swojej kariery kilka razy zmieniałem obszary, z którymi miałem do czynienia (poczynając od niskopoziomowego programowania w C, poprzez fullstackowe zabawy w RubyOnRails, aż do prawdziwego backendu w Javie).
Odkąd pamiętam, zawsze lubiłem dzielić się wiedzą z innymi i sprawiało to satysfakcję obu stronom tego procesu. Dlatego naturalną konsekwencją było to, iż zostałem kilka lat temu profesjonalnym trenerem IT.
Prowadzenie szkoleń pozwala mi również na każdorazowe powtórzenie i ugruntowanie swojej wiedzy, co potem bardzo przydaje się w pracy projektowej. Natomiast to, co daje mi największe zadowolenie jako trenerowi, to sytuacja gdy uczeń przerośnie mistrza - wtedy wiem, że dałem z siebie wszystko, a moja praca przyniosła owoce.


Stanowisko robocze


Do tego szkolenia każdy uczestnik otrzymuje dostęp do indywidualnej wirtualnej maszyny w chmurze. Ma ona zainstalowane i skonfigurowane wszystko co potrzebne do realizacji szkolenia. Maszyna będzie dostępna przez cały okres szkolenia.
Terminy gwarantowane

Gdy na jakiś termin zgłosi się minimalna liczba osób, termin oznaczamy jako gwarantowany.

Jeśli jakiś termin oznaczony jest jako gwarantowany to oznacza to, że na 100% się odbędzie we wskazanym czasie i miejscu.

Nawet gdyby część takiej grupy zrezygnowała lub przeniosła się na inny termin, raz ustalony termin gwarantowany takim pozostaje. Ewentualne ryzyko ponosimy my jako organizator.

Przejdź do terminów tego szkolenia

Szkolenia online Szkolenia online odbywają się na żywo z udziałem trenera. Uczestniczy łączą się na szkolenie za pomocą platfomy ZOOM. Informacje o wymaganym niezbędnym oprogramowaniu oraz informacje organizacyjne uczestnicy otrzymują na 7 dni przed datą rozpoczęcia szkolenia.
Inne szkolenia tej kategorii Sprawdź pozostałe    szkolenia Java!

Sprawdź, co mówią o nas ci, którzy nam zaufali

  • 5.0/5

    Spring WebFlux: Programowanie reaktywne w Javie z wykorzystaniem frameworka Spring

    28-03-2024 Bardzo dobre wejście w świat reaktywnej javy, asynchroniczności i wielowątkowości Jakub Musialik, Ornsson Solutions Sp. z o.o.
  • 5.0/5

    Spring WebFlux: Programowanie reaktywne w Javie z wykorzystaniem frameworka Spring

    28-03-2024 Marcin świetnie prowadzi zajęcia, chętnie udziela odpowiedzi na nurtujące nas pytania. Przemysław Czerw, Ornsson Solutions Sp. z o.o.

Trenerzy kategorii Java

Marcin Dzierżak
Dariusz Mydlarz
Michał Gellert
Łukasz Tomczyk
Marcin Chrost
Michał Podbielski
Zapisz się

Masz jakieś pytania? Skontaktuj się z nami!

Odpowiadamy na telefony i maile w godzinach 9:00-17:00 od poniedziałku do piątku.

Telefon 22 299 53 69
Napisz do nas

Potrzebujesz więcej informacji?

Wiadomość wysłana

Przyjęliśmy Twoją wiadomość i skontaktujemy się z Tobą w tej sprawie

Klikając OK wrócisz do formularza

Nasza strona korzysta z plików cookie. Możesz zmienić zasady ich używania lub zablokować pliki cookie w ustawieniach przeglądarki. Więcej informacji można znaleźć w Polityce prywatności. Kontynuując korzystanie ze strony, wyrażasz zgodę na używanie plików cookie.