Szkolenie: Zaawansowane aspekty języka Java
Szkolenie z zaawansowanego programowania w języku Java rozwija umiejętności optymalizacji, wykorzystania nowości językowych, programowania funkcyjnego, pracy ze strumieniami, wirtualnymi wątkami oraz modularności JVM
- Trenerzy praktycy
- Kameralne grupy
Czas trwania szkolenia:3 dni (24h)
Kod kursu:J/EXT
Zaawansowane aspekty języka Java
Cele szkolenia
Szkolenie przygotowuje do samodzielnego projektowania i optymalizowania zaawansowanych aplikacji w języku Java z wykorzystaniem najnowszych funkcji i narzędzi
Szkolenie uczy stosowania nowoczesnych technik programistycznych, wzorców projektowych oraz rozwiązywania problemów wydajnościowych w środowisku Java
Szkolenie rozwija umiejętność analizy i wdrażania rozwiązań opartych o programowanie funkcyjne, modularność oraz zaawansowane przetwarzanie danych
Dla kogo?
Programistów Java z podstawowym doświadczeniem, którzy chcą rozwinąć umiejętności w zakresie zaawansowanego programowania i optymalizacji aplikacji
Osób pracujących nad rozwojem i utrzymaniem aplikacji Java, zainteresowanych nowościami językowymi oraz najlepszymi praktykami
Efekty kształcenia
Uczestnik projektuje wydajne aplikacje z wykorzystaniem zaawansowanych funkcji języka Java
Uczestnik analizuje i optymalizuje kod pod kątem wydajności i nowoczesnych standardów
Uczestnik wdraża wzorce projektowe oraz techniki programowania funkcyjnego
Uczestnik rozróżnia i stosuje narzędzia do modularności i zarządzania zależnościami
Uczestnik wykorzystuje wirtualne wątki i nowoczesne API do przetwarzania równoległego
Uczestnik ocenia i implementuje rozwiązania zwiększające czytelność i jakość kodu
Wymagania
Podstawowa umiejętność programowania 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 szkolenia
Krótki przegląd istotnych nowości w języku Java
Zaawansowane aspekty praktycznego użycia Javy
Zasady tworzenia własnych adnotacji
Programowanie aspektowe z wykorzystaniem adnotacji oraz skanerów klas (ClassGraph, Jandex)
Typy generyczne z operatorami extend / super / &
Typy wyliczeniowe jako obiekty typu Singleton, fabryki obiektów oraz wzorzec Flyweight
Wprowadzenie do typów zapieczętowanych (sealed types) i ich praktyczne zastosowanie
Programowanie funkcyjne w Javie
Zasady programowania funkcyjnego jako podstawa współczesnego programowania
Lambdy i interfejsy funkcyjne
Typowe błędy w tworzeniu typów niemutowalnych w Javie
Rekordy a ich zastosowanie w programowaniu funkcyjnym
Pattern matching z wykorzystaniem konstrukcji if / switch oraz typów zapieczętowanych
Wykorzystanie nowości w języku jako nowy styl programowania - Data Oriented Programming
Obiektowe wzorce projektowe a programowanie funkcyjne
Zaawansowane procesowanie strumieni funkcyjnych
Typowe błędy podczas używania typów Optional / Stream
Prymitywne odpowiedniki strumieni i interfejsów funkcyjnych
NIO a funkcyjność
Budowanie zaawansowanego procesowania danych z wykorzystaniem strumieni i złożonych kolektorów
Stream Gatherers
Wirtualne wątki
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
Używanie istniejących oraz pisanie własnych podtypów StructuredTaskScope.Joiner
Popularne frameworki a wirtualne wątki
Rozszerzenia Języka Java z wykorzystaniem popularnych bibliotek
Lombok - zastosowanie zaawansowanych adnotacji @ExtensionMethod, @SuperBuilder, @Accessors, @Wither
MapStruct - wykorzystanie jako konstruktor kopiujący / deep cloning
Jackson / Gson - nietypowe przypadki związane z serializacją obiektów do formatu JSON
Optymalizacja obliczeń
Stable Values
Wołanie natywnych aplikacji z wykorzystaniem Process API oraz Foreign Memory / Linker API
Optymalizowanie procesowania Stringów w różnych praktycznych scenariuszach
Vector API jako alternatywa dla bezpośredniego paralelizmu
JMPS - Modularność Javy
Wprowadzenie do JPMS
Problemy we wprowadzaniu modułów do istniejących aplikacji
Budowanie własnych, zoptymalizowanych obrazów JVM
Budowanie modularnych aplikacji z wykorzystaniem serwisów
Wybrane opinie
Przeczytaj pozytywne opinie pochodzące z ankiet satysfakcji z naszych szkoleń wypełnianych wyłącznie przez ich uczestników po realizacji usługi

