Domain-Driven Design

Poznaj kompleksowo DDD. Odkrywaj domeny, przygotuj elastyczny model dziedziny i twórz oprogramowanie systemu zgodnie z najlepszymi praktykami.

Czas: 3-4 dni
Uczestnicy: do 16 osób (1-2 trenerów)

O szkoleniu

Dzięki tym warsztatom zrozumiesz, że Domain-Driven Desing to nie tylko tworzenie klas zgodnych z OOP, stosowanie wzorców projektowych i pisanie kodu dla niego samego. Poznasz cele i główne zalety podążania za DDD, a także cenne wskazówki, na które aspekty modelowania należy położyć nacisk. Przejdziesz cały proces modelowania. Korzystając z Event Storming, poznasz strategiczne DDD. Zdefiniujesz wszechobecny język, a za pomocą szeregu heurystyk wydzielisz subdomeny biznesowe systemu, z których zostaną utworzone Bounded Contexty i mapowanie między nimi (Context Mapping). To dzięki temu etapowi Twój system nie będzie cierpieć w przyszłości z powodu słabo zdefiniowanych granic, co może mieć negatywny wpływ na jakość oraz elastyczność rozwiązania. W kolejnym kroku przejdziesz do taktycznego DDD — poznasz wszystkie elementy, ich przeznaczenie oraz przykłady użyte w kodzie. Zobaczysz, jak model domeny jest budowany od podstaw poza kodem i jak zostaje następnie przeniesiony się do faktycznej implementacji.

To szkolenie nie jest tylko kolejnym przewodnikiem po implementacji fabryk, polityk i agregatów. Jest to kompleksowy program, którego celem jest przede wszystkim nauczenie myślenia o kodzie w sposób domenowy i wyposażenie w szereg narzędzi (nieosadzonych w kodzie, ale w głowie), które skutecznie wydobywają esencję z labiryntu często niejasnych i „sztucznych” wymagań biznesowych.

Czego nauczy się uczestnik?

  • Fundamentów Event Storming (Big Picture, Process/Design Level)
  • Pryncypiów oraz celów wykorzystania Domain-Driven Design
  • Sposobów eksploracji i destylacji domeny
  • Definiowania Bounded Contextów oraz ich mapowania przez odpowiedni model
  • Taktycznego DDD (agregaty, encje, obiekty wartościowe etc.)
  • Definiowania domeny wielowarstwowej przy użyciu struktur wielkiej skali
  • Zastosowania DDD w architekturze

Program szkolenia

Dzień 1

  • Wprowadzenie do domeny, którą odkryjemy
  • Wprowadzenie do Event Storming
  • Event Storming — sesja „Big Picture”
  • Eksploracja i destylacja subdomen
  • Event Storming — sesja „Process Level”

Dzień 2

  • Definiowanie Bounded Contextów oraz Context Mapping
  • Wprowadzenie do taktycznego DDD
  • Eksploracja i destylacja subdomenEvent Storming — sesja „Process Level”Event Storming — sesja „Design Level”
  • Finalizacja modelu domeny gotowego do implementacji

Dzień 3/4

  • Zastosowanie modelu do aplikacji ASP.NET Core (Modularny Monolit)
  • Zrozumienie struktur wielkiej skali (teoretycznie i praktycznie)
  • Przejście z modularnego monolitu do mikroserwisów – implikacje dla domeny

Grupa Docelowa

Każdy programista skorzysta z tych warsztatów! Zaczynając od fundamentalnych zagadnień, przechodzimy przez wszystkie aspekty zarówno strategicznego, jak i taktycznego DDD. Przykładowy kod będzie wymagać podstawowej znajomości C#/ASP.NET Core.

Trenerzy

Dariusz Pawlukiewicz

Microsoft MVP, Trener Bottega IT Minds, Inżynier Oprogramowania w EcoVadis, Prelegent, Kontrybutor Open-source, współtwórca platformy DevMentors.io.

Piotr Gankiewicz

Microsoft MVP, Trener Bottega IT Minds, Inżynier Oprogramowania w Tickmill, Prelegent, Kontrybutor Open-source, współtwórca platformy DevMentors.io.