Szkolenie Domain Driven Design

Poziom

Średniozaawansowany

Czas

16h / 2 dni

Termin

Indywidualnie

Cena

Indywidualnie

Szkolenie z Domain Driven Design

Domain Driven Design to podejście do projektowania systemów, które kładzie duży nacisk na jak najlepsze odzwierciedlenie procesów i założeń biznesowych w implementacji. Obiekty i ich relacje powinny jak najbardziej odzwierciedlać biznes, a nazewnictwo powinno być spójne z językiem biznesowym. DDD daje nam narzędzia, struktury i terminologię, które możemy wykorzystać w procesie podejmowania decyzji projektowych. Jest zestawem koncepcji i technik wspierających projektowanie i implementację modeli biznesowych. Szkolenie oparte jest na rzeczywistych przykładach i praktycznym zastosowaniu, dzięki czemu uczestnicy rozbudują swoją wiedzę teoretyczną oraz udoskonalą umiejętność modelowania strategicznego i taktycznego. Uczestnicy uczą się także, jak wykorzystywać DDD do budowania wspólnego języka z biznesem oraz jak świadomie projektować granice systemów i odpowiedzialności.

Dla kogo jest szkolenie z Domain Driven Design?
  • logo infoshare Programiści, projektanci, product ownerzy, którzy pragną poznać praktycznie i przećwiczyć projektowanie złożonych modeli domen z wykorzystaniem Domain Driven Design
  • logo infoshare Architekci systemowi i senior developerzy pracujący nad złożonymi systemami
  • logo infoshare Analitycy i osoby współpracujące z biznesem przy definiowaniu domeny i wymagań

Czego nauczysz się na szkoleniu?

  • Zrozumiesz w jaki sposób Domain Driven Design pomaga w projektowaniu systemu informatycznego
  • Nauczysz się zastosowania technik z poziomu wzorców taktycznych w obrębie Bounded Context
  • Dowiesz się jak prawidłowo zastosować myślenie strategiczne (strategic thinking) podczas budowania systemu informatycznego
  • Zrozumiesz znaczenie zdarzeń domenowych (Domain Events) i sposobu, w jaki mogą być użyte w integracji Bounded Contexts
  • Identyfikować bounded contexty oraz subdomeny i rozumieć ich wpływ na architekturę systemu
  • Wykorzystywać DDD do podejmowania decyzji architektonicznych i redukcji ryzyka w systemach

Program szkolenia z Domain Driven Design

Wprowadzenie do Domain Driven Design

  • Problem dopasowania software’u do biznesu
  • Czym DDD jest, a czym nie jest
  • Kiedy DDD ma sens (i kiedy jest overkillem)

 

Ubiquitous Language w praktyce

  • Budowanie wspólnego języka z biznesem
  • Jak wykrywać niejednoznaczności i konflikty pojęć
  • Język jako narzędzie projektowe, nie dokumentacyjne
  • Antywzorce komunikacyjne

 

Perspektywa biznesowa i zrozumienie domeny

  • Typy domen: Core, Supporting, Generic
  • Wartość biznesowa jako driver decyzji architektonicznych
  • Identyfikacja kluczowych obszarów systemu
  • DDD jako narzędzie redukcji ryzyka

 

Wzorce strategiczne Domain Driven Design

  • Bounded Context i granice odpowiedzialności
  • Identyfikacja kontekstów i subdomen
  • Context Map i relacje między kontekstami
  • Monolit modularny vs mikroserwisy
  • Ewolucja granic

 

DDD a architektura systemu

  • Warstwy vs podejście heksagonalne
  • Granice kontekstów a granice deployowalne
  • Trade-offy architektoniczne

 

DDD strategiczne + AI

  • Jak AI wpływa na odkrywanie domeny
  • Wspieranie eksploracji domeny
  • Ryzyko utraty kontekstu biznesowego
  • AI jako wsparcie komunikacji z biznesem

 

Wprowadzenie do modelowania taktycznego

  • Rola modelu domenowego w kodzie
  • Anemiczny model vs bogaty model
  • Gdzie powinna żyć logika biznesowa

 

Building blocks DDD

  • Entity i tożsamość
  • Value Object i niemutowalność
  • Aggregate jako granica spójności
  • Domain Event jako nośnik zmiany
  • Repository i Factory

 

Projektowanie agregatów

  • Invarianty i ich ochrona
  • Heurystyki wyznaczania granic agregatu
  • Konsystencja vs skalowalność
  • Najczęstsze błędy (zbyt duże / zbyt małe agregaty)

 

Implementacja modelu domenowego

  • Mapowanie modelu na kod
  • Separacja modelu domenowego od infrastruktury
  • ORM vs podejście domain-first
  • Walidacja: gdzie i dlaczego

 

Testowanie w DDD

  • Testy domeny vs testy integracyjne
  • Testowanie agregatów
  • Testy jako ochrona modelu
  • Wpływ testów na design

 

DDD taktyczne + AI

  • Generowanie kodu domenowego z AI
  • Ryzyko anemicznego modelu
  • Jak walidować kod generowany przez AI
  • Testy jako mechanizm kontroli jakości AI

 

Powiązane podejścia architektoniczne

  • CQRS jako separacja odpowiedzialności
  • Event Sourcing – kiedy ma sens
  • Event Driven Architecture
  • Jak nie popaść w overengineering

 

DDD, a rozwój projektu

  • Współpraca z biznesem na co dzień
  • Utrzymywanie modelu w czasie
  • Refaktoryzacja modelu domenowego

 

Wzorce uzupełniające

  • Domain Services – kiedy logika nie pasuje do encji
  • Policies – modelowanie reguł biznesowych
  • Specification – kompozycja logiki
  • Saga – koordynacja procesów rozproszonych

 

Najczęstsze błędy i antywzorce

  • DDD jako “nazewnictwo klas”
  • Brak granic kontekstów
  • Nadmierna złożoność
  • Brak współpracy z biznesem

 

Podsumowanie

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