Szkolenie z Java poziom zaawansowany
Poziom
ZaawansowanyCzas
16h / 2 dniTermin
IndywidualnieCena
IndywidualnieSzkolenie z Java poziom zaawansowany
Szkolenie jest przeznaczone dla programistów Java, którzy mają praktyczne doświadczenie w tworzeniu aplikacji i chcą uporządkować oraz pogłębić znajomość mechanizmów języka. Obejmuje zaawansowane elementy programowania obiektowego, rekordy, typy wyliczeniowe, typy generyczne, kolekcje, pracę z plikami, Gradle, adnotacje, refleksję, podstawy programowania funkcyjnego oraz zasady SOLID. Uczestnicy ćwiczą techniki przydatne w codziennej pracy Java developera, aby tworzyć bardziej czytelny, elastyczny i łatwiejszy w utrzymaniu kod.
Dla kogo jest to szkolenie?
Dla programistów języka Java posiadających już doświadczenie w praktycznym programowaniu
Dla programistów, którzy chcą uporządkować swoją wiedzę o Javie
Dla osób, które chcą poznać fundamentalne i zaawansowane techniki wspierające codzienną pracę Java developera
Czego nauczysz się na tym szkoleniu?
- Uporządkujesz wiedzę o zaawansowanych mechanizmach programowania obiektowego w Javie
- Nauczysz się stosować rekordy, typy wyliczeniowe, typy generyczne i kolekcje w praktycznych scenariuszach
- Nauczysz się pracować z plikami oraz zarządzać projektem i zależnościami przy użyciu Gradle
- Dowiesz się, jak tworzyć własne adnotacje i wykorzystywać mechanizm refleksji.
- Poznasz podstawy programowania funkcyjnego w Javie: klasy anonimowe, lambdy i strumienie
- Przećwiczysz zasady SOLID jako zestaw praktyk wspierających czytelność, testowalność i utrzymywalność kodu
Program szkolenia
Dzień 1
Zaawansowane OOP
- Klasy abstrakcyjne
- Interfejsy
- Polimorfizm
- Dziedziczenie i kompozycja
- Enkapsulacja i odpowiedzialności klas
Rekordy – Value Object i praktyczne zastosowanie
- Rekord jako niemutowalny model danych
- Value Object w kodzie aplikacyjnym
- Konstruktor kanoniczny i walidacja danych
- Różnice pomiędzy rekordem i klasą
Enum – typ wyliczeniowy i uproszczenie kodu
- Typ wyliczeniowy jako ograniczony zbiór wartości
- Pola, konstruktory i metody w enum
- Enum w logice biznesowej
- Czytelność kodu i eliminacja wartości magicznych
Typy generyczne i zaawansowane kolekcje
- Zasady działania poszczególnych kolekcji
- Dobór kolekcji do scenariusza użycia
- Typy generyczne w klasach i metodach
- Ograniczenia typów i bezpieczeństwo typowania
- List, Set, Map i Queue w praktycznych scenariuszach
Dzień 2
IO w Javie – praca na plikach
- Pliki i katalogi w Javie
- Odczyt i zapis danych tekstowych
- Strumienie wejścia i wyjścia
- Obsługa błędów podczas pracy z plikami
- Podstawowe ryzyka związane z dostępem do zasobów
Gradle – narzędzie do budowania projektów oraz zarządzania zależnościami
- Struktura projektu Gradle
- Konfiguracja zadań budowania
- Zarządzanie zależnościami
- Uruchamianie testów i aplikacji
- Podstawowe dobre praktyki konfiguracji projektu
Adnotacje – przykład biblioteki Jackson
- Standardowe adnotacje w Javie
- Własne adnotacje
- Refleksja jako mechanizm analizy metadanych
- Adnotacje Jackson w serializacji i deserializacji danych
- Ograniczenia i ryzyka nadużywania refleksji
Programowanie funkcyjne
- Klasy anonimowe
- Lambdy
- Streamy
- Interfejsy funkcyjne
- Operacje map, filter i reduce
- Czytelność i ograniczenia kodu funkcyjnego
SOLID – zbiór podstawowych praktyk Java developera
- Single Responsibility Principle
- Open/Closed Principle
- Liskov Substitution Principle
- Interface Segregation Principle
- Dependency Inversion Principle
- Wpływ zasad SOLID na czytelność, testowalność i utrzymywalność kodu