Java - zagadnienia zaawansowane, techniki OO, funkcyjne oraz wzorce

Tytuł: Java - zagadnienia zaawansowane, techniki OO, funkcyjne oraz wzorce
Kod: advanced-Java Pro
Kategoria: Zaawansowana Java
Forma: 50% wykłady / 50% warsztaty
Czas trwania: 3 dni
Odbiorcy: developerzy
Zapisy: Indywidualne zamówienie i dopasowanie dla grupy.
Logistyka: W siedzibie klienta lub w innym dowolnym miejscu.

Szkolenie zostało opracowane z myślą o uczestnikach pragnących poszerzyć swoje kompetencje programistyczne w pragmatycznym kierunku.

Materiał został dobrany na podstawie wieloletnich doświadczeń programistów biorących udział w wielu projektach - nie jest to rodzaj bezproduktywnych łamigłówek znanych z niektórych testów certyfikacyjnych.

Zakres szkolenia został rozszerzony o zaawansowane zagadnienia Object Oriented, testowania i aspekty architektury aplikacji.

Wyróżniki szkolenia

  • Realne problemy i pragmatyczne rozwiązania
  • Software Craftsmanship
  • Zaawansowane wzorce i techniki obiektowe

Program Szkolenia

Program jest ramą w jakiej możemy się poruszać merytorycznie - program dla konkretnego szkolenia dedykowanego ustalamy z grupą na podstawie analizy przed-szkoleniowej.

  1. Nowości w świecie Javy
    1. Wyrażenia Lambda, Optional/Stream/CompletableFuture, java.time, lepsza inferencja typów, poprawki w HashMap
    2. G1GC, JPMS, Unified JVM logging, VarHandles, Stackwalker, Collections Factory Methods, Spin-wait hints
    3. Local-variable type-inference, Parallel Full GC dla G1, Time-Based Release Versioning
    4. Epsilon, Http Client, LocalVariable syntax for Lambdas, Flight Recorder, Low-overhead heap profiling, ZGC
    5. Project Amber, Valhalla, Loom
  2. Uczenie się myślenia funkcyjnego - krótkie ćwiczenia praktyczne w formule TDD
    1. lambdy
    2. monady
    3. streamy
    4. Własne Collectors oraz Spliterators (na przykładzie Collectora do ImmutableSet i Sliding Window Spliteratora)
  3. Wybór praktycznych wzorców projektowych GoF oraz ich odświeżone wersje w wykorzystaniem receptur funkcyjnych
    1. Command
    2. Strategy
    3. Template Method
    4. Observer
    5. Decorator
    6. Chain of Responsibility
  4. SOLID i design na przykładzie problemów z domen biznesowych
    1. Single Responsibility Principle
    2. Open-closed Principle
    3. Liskov Substitution
    4. Interface Segregation
    5. Dependency Inversion
    6. Pułapki Dziedziczenia
    7. Wstęp do Hexagonal Architecture i niebetonowania domeny frameworkami
  5. Praktyczny wstęp do concurrency
    1. Wątki, definicja, tworzenie
    2. Przegląd java.util.concurrent
    3. ExecutorService
      1. Przegląd
      2. Dobre praktyki
    4. Dlaczego Parallel Streams nie nadają się na produkcję
    5. Dlaczego lepiej nie korzystać z Executors
    6. CompletableFuture
    7. Zadanie: własny scheduler uruchamiający zadania rownolegle
    8. Zadanie: własny prymitywny GC
  6. Receptury "effective java"
    1. Sealed classes w Javie
    2. Bezpieczny wątkowo i wydajny lazy init
    3. Jak sobie poradzić z wyjątkami w lambdach
  7. Użyteczne biblioteki
    1. Lombok
    2. Guava/Commons (tylko te części które wciąż mają zastosowanie)
    3. Vavr
  8. Wstęp do programowania reaktywnego z wykorzystaniem Project Reactor


Pobierz program w formacie PDF

Trenerzy

Poznaj ekspertów, którzy mogą poprowadzić Twoje szkolenie.

Materiały związane ze szkoleniem

Idea renesansowej pracowni - Bottegi zakłada nieustanną pracę jej członków i dzielenie się jej wynikami.

Zamów szkolenie

Imię i nazwisko:
Firma:
E-mail:
Nr tel:
Temat:
Wiadomość:

Jeżeli preferujesz osobisty kontakt to zawsze możesz zadzwonić.

Iwona Sobótka

Koordynatorka szkoleń


Twoje dane osobowe przetwarzamy, aby udzielić odpowiedzi na Twoje pytanie. Administratorem Twoich danych osobowych jest Bottega It Minds Sławomir Sobótka. Przysługuje Ci prawo wniesienia sprzeciwu wobec przetwarzania, prawo dostępu do danych, prawo żądania ich sprostowania, usunięcia lub ograniczenia ich przetwarzania. Szczegółowe informacje dotyczące przetwarzania Twoich danych osobowych znajdują się TUTAJ.