Opis szkolenia

Co zyskasz?

Szkolenie obejmuje zarówno zmiany w API, podstawy programowania funkcyjnego oraz sposoby wykorzystania nowego sposobu myślenia zarówno w pracy z istniejącym kodem, jak i w nowych aplikacjach. W trakcie warsztatu zapoznasz się ze zmianami w języku, poznasz praktyczne wykorzystanie wyrażeń lambda i strumieni, aż po sposoby refaktoryzacji istniejącego kodu do Javy8 i efektywnego testowania funkcyjnych idiomów.

Profil uczestnika

Szkolenie dedykowane jest dla programistów Java pragnących poznać nowe elementy języka Java wprowadzone wraz z JDK8. Warsztat skupia się na wszystkich zmianach w języku Java oraz jego ewolucji w kierunku funkcyjnym i deklaratywnym. Od uczestników szkolenia wymagane jest minimum kilkuletnie doświadczenie w programowaniu w języku Java.

Program szkolenia

Wstęp do programowania deklaratywnego
  • Konsekwencje współdzielenia stanu

  • Iteracja vs. rekurencja

  • Funkcja jako first-class citizen

    • Funkcje wyższego rzędu

    • Currying

  • Lazy data structures

Wyrażenie lambda
  • Zapoznanie ze składnią

  • Interface’y funkcyjne

  • Referencje do metod

  • Referencje do konstruktorów

  • Programowanie w stylu funkcyjnym w Javie

  • Testowanie funkcji

Strumienie
  • Wprowadzenie do strumieni; kolekcja vs. strumień

  • Operacje pośrednie na strumieniach (filtrowanie, mapowanie)

  • Operacja finalne (redukcja, kolekcja, partycjonowanie)

  • Strumienie współbieżne

Nowe Date API
  • Wprowadzenie do pakietu java.time

  • Przetwarzanie czasu

  • Zagadnienia stref czasowych

Completable Future
  • Braki i ograniczenia interfejsu Future<T>

  • Reaktywne (nieblokujące) aplikacje wielowątkowe

  • Praca z asynchronicznym kodem: przetwarzanie, transformowanie i składnie rezultatów

Usprawnienia JDK
  • Domyślne implementacje i statyczne metody w interface’ach

  • Wywoływanie kodu JavaScript z poziomu JVM (silnik Nashorn)

  • Usprawnienia i optymalizacje API (HashMap, Optional, StringJoiner)

Zapytaj o szkolenie

Jestem dla Ciebie dostępny poprzez: twitter, linkedin lub tradycyjnie przez email kuba.marchwicki at gmail.com