Domain-Driven Design

Czas trwania

Szkolenie stacjonarne – 14h – 2 dni po 7 godzin (wliczając przerwy).

Szkolenie online – 15h – 3 dni po 5 godzin (wliczając przerwy).
Harmonogram szkolenia online:

09:00 – 11:00 sesja online,
11:00 – 12:00 przerwa,
12:00 – 14:00 sesja online.

Informacje o szkoleniu:
Szkolenie Domain-Driven Design skierowane jest do zespołów realizujących złożone projekty
i tworzące produkty/usługi z branży IT. Bazując na szczegółowej analizie dostępnych źródeł
i własnym doświadczeniu w prowadzeniu komercyjnych projektów trenerzy rozwiewają wątpliwości
dotyczące DDD i uczą prawidłowego zastosowania technik pozwalających zapanować nad złożonym
systemem informatycznym.

Domain-Driven Design obejmuje zagadnienia z pełnego spektrum stadiów procesu wytwarzania oprogramowania.
Program polecany jest więc osobom pełniącym różnorodne role – architektom, programistom, analitykom biznesowym,
product ownerom. Największe korzyści uzyskają firmy, w których metodyka będzie rozumiana i stosowana holistycznie
w całej organizacji ze względu na wzajemne zależności, które występują pomiędzy zagadnieniami skierowanymi do każdej z wymienionych grup.

DDD uczy, jak podzielić i skutecznie modelować złożony problem biznesowy redukując dystans pomiędzy wymaganiami interesariuszy a techniczną
realizacją. Stosowanie prezentowanych technik pozwala skrócić czas analizy biznesowej, modelowania i implementacji, poprawnie wyznaczać priorytety,
zmniejszyć ryzyko nieporozumień oraz zbudować system łatwo adaptowalny do zmieniających się potrzeb klientów.

Komu dedykowane jest szkolenie?
Zespołom projektowym i wytwórczym,
Programistom,
Architektom systemów informatycznych,
Analitykom biznesowym i product ownerom,
Kadrze Zarządzającej,
Interesariuszom i ekspertom domenowym.

Zainteresowanym realizacją złożonych projektów, produktów i inicjatyw w szczególności z branży IT.

Co warto wiedzieć przed szkoleniem?
Znajomość podstawowych zagadnień z zakresu projektowania i implementacji systemów informatycznych.
Mile widziane doświadczenie w pracy nad złożonymi rozwiązaniami IT obejmującymi szereg domen biznesowych
oraz wymagających współpracy licznego grona specjalistów podzielonych na jeden lub więcej zespołów.

Certyfikacja
W cenę szkolenia autorskiego wliczone są certyfikaty ukończenia szkolenia wystawiane przez Ośrodek Szkoleniowy.

Zagadnienia:
Definicja Domain-Driven Design
Przedstawienie definicji i założeń Domain-Driven Design.
Zalety i obszary zastosowania Domain-Driven Design.
Podział wzorców DDD na strategiczne i taktyczne.
Omówienie częstych nieporozumień związanych z DDD.

Komunikacja
Rola komunikacji w procesie wytwarzania oprogramowania.
Język techniczny, biznesowy i typowe błędy w komunikacji.
Przedstawienie zalet używania języka domenowego.
Metody pozyskiwania wiedzy od ekspertów domenowych.
Odkrywanie i stosowanie powszechnego języka (ang. ubiquitous language).

Wzorce strategiczne
Przedstawienie definicji poddziedziny (ang. subdomain) i ograniczonego kontekstu (ang. bounded context).
Omówienie typów poddziedzin.
Prezentacja techniki mapy kontekstów (ang. context map) i przedstawienie rodzajów zależności pomiędzy ograniczonymi kontekstami.
Wyznaczanie granic kontekstu i zasady dotyczące rozmiaru kontekstu.
Reguły przyporządkowania zespołów do ograniczonych kontekstów.
Omówienie problemu współdzielenia modelu i kodu pomiędzy ograniczonymi kontekstami.
Ćwiczenie z zastosowania wzorców strategicznych w praktyce.

Domain-Driven Design w kontekście Agile
Jak DDD wpisuje się w podejście Agile?
Rola niezależnych zespołów deweloperskich.
KISS oraz YAGNI jako elementy podejścia DDD.
Rola nieustającej nauki (ang. continuous learning), eksperymentów i refaktoryzacji w procesie wytwarzania oprogramowania.

Wzorce taktyczne
Zwięzłe omówienie kluczowych cech poprawnej architektury oprogramowania.
Zakreślenie podziału na model i infrastrukturę w implementacji ograniczonego kontekstu.
Antywzorzec anemicznego modelu dziedziny.
Zastosowanie TDD w procesie modelowania i implementacji ograniczonego kontekstu.
Ćwiczenie z analizy kodu na podstawie wzorców technicznych.

Referencyjna architektura DDD
Wskazanie obszarów zastosowania referencyjnej architektury DDD.
Szczegółowe omówienie elementów konstrukcyjnych (ang. building blocks).
Techniki nadawania ID, użycie ORM i inne techniczne niuanse.
Przykłady implementacji w oparciu o referencyjną architekturę.
Omówienie częstych błędów, pułapek i antywzorców.
Ćwiczenie z zastosowania referencyjnej architektury.

Rodzaje fizycznej separacji ograniczonych kontekstów
Separacja logiczna i fizyczna pomiędzy ograniczonymi kontekstami oraz między warstwami ograniczonego kontekstu w architekturze monolitycznej.
Implementacja DDD w oparciu o architekturę CQRS.
Implementacja DDD w oparciu o architekturę mikroserwisową.
Ćwiczenie z projektowania infrastruktury systemu w oparciu o poznane wzorce.

Narzędzia ułatwiające zarządzanie procesem
Iteracyjne odkrywanie modelu domenowego przy użyciu techniki Modeling Whirlpool.
Modelowanie domenowe przy użyciu techniki Event Stormingu.
Komunikacja z ekspertami domenowymi podczas sesji Three Amigos.
Specyfikacja w oparciu o przykłady, czyli Behavior-Driven Development.
Przykład kompletnego harmonogramu prac wzbogacenia systemu o nową funkcjonalność.
Warsztaty z zastosowania poznanych narzędzi.

Podsumowanie szkolenia.