Szkolenie z Java poziom zaawansowany

Poziom

Zaawansowany

Czas

16h / 2 dni

Termin

Indywidualnie

Cena

Indywidualnie

Szkolenie 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?
  • logo infoshare Dla programistów języka Java posiadających już doświadczenie w praktycznym programowaniu
  • logo infoshare Dla programistów, którzy chcą uporządkować swoją wiedzę o Javie
  • logo infoshare 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

Skontaktuj sie z nami

zorganizujemy dla Ciebie szkolenie dopasowane do Twoich potrzeb

Przemysław Wołosz

Key Account Manager

przemyslaw.wolosz@infoShareAcademy.com

    Administratorem danych osobowych jest InfoShare Academy Sp. z o.o. z siedzibą w Gdańsku, al. Grunwaldzka 427B, 80-309 Gdańsk, KRS: 0000531749, NIP: 5842742213. Dane osobowe przetwarzane są zgodnie z klauzulą informacyjną.