Programowanie funkcyjne w Javie

Opis

Język Java zasłynął jako obiektowy język programowania. W ciągu ostatnich kilku wersji, aby wzbogacić możliwości języka, nadać mu większej zwięzłości i ekspresyjności, zaczęto wprowadzać elementy programowania funkcyjnego. Niniejsze szkolenie sprawi, iż Twoje programowanie przeniesie się na wyższy poziom i zobaczysz z jaką łatwością można się zastąpić wiele problematycznych konstrukcji z klasycznej Javy, konstrukcjami funkcyjnymi.

Podstawowy program

Moduł. 1
Wprowadzenie do programowania funkcyjnego
Moduł. 2
Budowa interfejsów
Moduł. 3
Wyrażenia lambda
Moduł. 4
Myślenie funkcyjne
Moduł. 5
Strumienie danych (Stream API)
Moduł. 6
Klasa Optional
Moduł. 7
Programowanie funkcyjne z Vavr.io

Szczegółowy program

Moduł. 1
Wprowadzenie do programowania funkcyjnego
  • Czym jest programowanie funkcyjne?
  • Programowanie funkcyjne a inne paradygmaty programowania
  • Zakres wsparcia programowania funkcyjnego w Javie
Moduł. 2
Budowa interfejsów
  • Interfejsy z jedną metodą abstrakcyjną i ich implementacja
  • Metody domyślne
  • Metody statyczne
  • Rozwiązywanie konfliktów w interfejsach
  • Przykładowe metody statyczna i domyślne w Java API
  • Pakiet java.util.function
  • Consumer
  • Supplier
  • Function
  • UnaryOperator i BinaryOperator
Moduł. 3
Wyrażenia lambda
  • Czym są wyrażenia lambda?
  • Składnia lambda w języku Java
  • Referencje do metod i konstruktorów
  • Przykłady użycia wyrażeń lambda w zastosowaniu do realnych problemów
Moduł. 4
Myślenie funkcyjne
  • Klasyczna obiektowość a programowanie funkcyjne
  • Wzorce GoF a programowanie funkcyjne
  • Funkcyjne wzorce projektowe
  • Type-Driven Development
Moduł. 5
Strumienie danych (Stream API)
  • Czym są strumienie danych?
  • Tworzenie i przetwarzanie strumieni
  • Interfejs java.util.Stream
  • Strumienie obiektowe i „prymitywne”
  • Mapowanie i filtrowanie
  • Operacje redukcyjne (map-reduce)
  • Zbieranie danych z list i zbiorów
  • Zbieranie danych ze złożonych struktur danych
  • Implementacja komparatorów z użyciem lambd
  • Optymalizacje
Moduł. 6
Klasa Optional
  • Tworzenie wyników opcjonalnych
  • Optional w warstwie dostępu do danych
  • Metody typu Optional
Moduł. 7
Programowanie funkcyjne z Vavr.io
  • Funkcyjne struktury danych - tuples, linked list, queue, sorted set
  • Stan w kolekcjach (Seq/Set/Map)
  • Funkcje - composition/lifting/partials/currying/memoization
  • Option
  • Try
  • Lazy
  • Either
  • Future
  • Validation
  • Funkcyjne podejście do obsługi błędów Optional/Try/Either
  • Pattern Matching

Parametry szkolenia

Czas trwania
2 x 8h
Forma zajęć
Ćwiczenia - 60%, wykład - 40%
Kod
JF
Wielkość grupy
do 10 osób

Jak zamówić

« lista szkoleń