Szkolenie z Architektury aplikacji

Poziom

Średniozaawansowany

Czas

16h / 2 dni

Termin

Indywidualnie

Cena

Indywidualnie

Szkolenie z Architektury aplikacji

Praktyczne szkolenie poświęcone projektowaniu aplikacji Java o czytelnych granicach modułów, kontrolowanych zależnościach i architekturze odpornej na zmiany technologiczne. Uczestnicy przeanalizują zastany system i uporządkują go z użyciem podejścia Package by Feature, fasad modułowych, CQRS, architektury heksagonalnej oraz Domain-Driven Design. Zakres obejmuje również modularny monolit, moduły Mavena, komunikację zdarzeniową, testy architektury i zasady bezpiecznego wykorzystania kodu generowanego przy wsparciu AI.

Dla kogo jest szkolenie z Architektury aplikacji?
  • logo infoshare Dla programistów Java, którzy samodzielnie tworzą aplikacje w Spring Boot, korzystają z Maven oraz znają podstawy JPA lub Hibernate, REST API i testów automatycznych
  • logo infoshare Dla osób rozwijających istniejące systemy, które chcą ograniczyć zależności między modułami, poprawić testowalność kodu i przygotować bezpieczny plan refaktoryzacji
  • logo infoshare Dla programistów rozpoczynających nowy projekt i potrzebujących praktycznych zasad podziału aplikacji według funkcji biznesowych oraz granic domenowych
  • logo infoshare Dla senior developerów i liderów technicznych rozwijających kompetencje w kierunku projektowania architektury aplikacji, modularnych monolitów i systemów mikroserwisowych

Czego nauczysz się na szkoleniu z Architektury aplikacji?

  • Przeanalizujesz zależności w zastanej aplikacji i przygotujesz propozycję jej podziału na moduły o jednoznacznych odpowiedzialnościach
  • Zaprojektujesz publiczne interfejsy modułów oraz ograniczysz dostęp do ich wewnętrznej implementacji za pomocą mechanizmów języka Java i fasad
  • Rozdzielisz operacje zapisu i odczytu, a następnie uporządkujesz zależności zgodnie z architekturą heksagonalną oraz zasadą odwrócenia zależności
  • Przygotujesz mapę kontekstów domenowych, podstawowy model domenowy oraz kontrakty komunikacji między modułami
  • Zaprojektujesz komunikację zdarzeniową z uwzględnieniem idempotencji, ponowień, spójności ostatecznej i obserwowalności
  • Ocenisz gotowość modularnego monolitu do etapowego wydzielenia mikroserwisów oraz udokumentujesz kluczowe decyzje, ograniczenia i ryzyka architektoniczne

Program szkolenia z Architektury aplikacji

Dzień 1

 

Moduł 1: Przykładowy kod i zastany system

  • Konteneryzacja aplikacji – powtarzalne środowisko lokalne, konfiguracja usług zależnych i granice zastosowania kontenerów
  • Java, Spring i Hibernate – warstwy techniczne, zależności frameworkowe, model persystencji i punkty sprzężenia
  • Testy API w Postmanie – charakterystyka zachowania systemu, scenariusze regresji i kontrakty istniejących endpointów

Moduł 2: Dostęp pakietowy w Javie

  • Konfiguracja IDE – wizualizacja zależności, reguły inspekcji i kontrola naruszeń granic pakietów
  • Uproszczenie kodu – redukcja widoczności, ograniczenie API modułu i eliminacja zbędnych zależności
  • Package by Feature i Package by Layer – struktura funkcjonalna, struktura warstwowa, zależności backend–frontend i kryteria wyboru

Moduł 3: Fasada – jedyne wejście do modułu

  • Hermetyzacja modułu – publiczny kontrakt, implementacja wewnętrzna i ochrona granic odpowiedzialności
  • Behavior-Driven Development – scenariusze biznesowe, kryteria akceptacji i testy zachowania modułu
  • Przyszła refaktoryzacja – punkty rozszerzeń, kompatybilność kontraktów, zapis decyzji i kontrola kodu generowanego przez AI

Moduł 4: Command Query Responsibility Segregation (CQRS)

  • Fasada i serwis – granice odpowiedzialności, kontrakt aplikacyjny i separacja logiki biznesowej od integracji
  • Command Handler – obsługa poleceń, walidacja, transakcje, idempotencja i jednoznaczny rezultat operacji
  • Query Repository – modele odczytu, projekcje danych, optymalizacja zapytań i separacja od modelu zapisu

 

Dzień 2

 

Moduł 5: Architektura czysta, heksagonalna i cebulowa oraz architektura portów i adapterów

  • Warstwy biznesowe – możliwości, operacje, polityki, reguły domenowe i wsparcie decyzji
  • Odwrócenie zależności – zależności skierowane do wnętrza, abstrakcje i niezależność logiki od frameworków
  • Porty i adaptery – kontrakty wejściowe, kontrakty wyjściowe, adaptery interfejsu użytkownika i integracje zewnętrzne
  • Persystencja w adapterach – repozytoria, mapowanie modeli, granice transakcji i niezależność domeny od bazy danych
  • Spring jako adapter – konfiguracja frameworka poza rdzeniem aplikacji, wstrzykiwanie zależności i testowalność komponentów

Moduł 6: Moduły Mavena

  • Zależności między modułami – kierunek zależności, graf modułów, cykle i automatyczna walidacja reguł architektonicznych
  • Moduł i pakiet – granice kompilacyjne, granice logiczne, Spring Modulith i kryteria wydzielania komponentów
  • Moduły Java 9+ – Java Platform Module System, eksportowane pakiety i kontrola dostępu na poziomie platformy
  • Monolit i mikroserwisy – modularny monolit, koszty rozproszenia, autonomia wdrożeń i kryteria dekompozycji
  • Różne języki JVM w modułach – interoperacyjność, wspólne kontrakty, proces budowania i koszt zróżnicowanego stosu technologicznego

Moduł 7: Domain-Driven Design

  • DDD strategiczne – domeny, subdomeny, bounded contexts, język wszechobecny i Context Map
  • EventStorming – zdarzenia domenowe, polecenia, aktorzy, polityki, agregaty i punkty integracji
  • DDD taktyczne – encje, obiekty wartości, agregaty, repozytoria, serwisy domenowe i zdarzenia domenowe
  • Encje bazodanowe i encje domenowe – różnice odpowiedzialności, mapowanie modeli i ochrona reguł biznesowych
  • Praktyki projektowe – pragmatyczny zakres DDD, dokumentacja decyzji, przeglądy architektury i zarządzanie ryzykiem zmian

Moduł 8: Komunikacja zdarzeniami

  • Publikacja zdarzeń z domeny i aplikacji – granice odpowiedzialności, zdarzenia domenowe, zdarzenia integracyjne i transactional outbox
  • Ponowienia publikacji – idempotencja, backoff, kolejki błędów i kontrola wielokrotnego dostarczenia
  • Obsługa zdarzeń – kolejność, wersjonowanie schematów, kompatybilność konsumentów i spójność ostateczna
  • Wsparcie w Springu – zdarzenia aplikacyjne, Spring Modulith, integ

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ą.