| Tytuł: | Domain Driven Design - projektowanie modeli złożonych domen (część 1) |
| Kod: | ddd-workshop-DDD |
| Kategoria: | Warsztaty eksperckie DDD |
| Forma: | 60% wykłady / 40% warsztaty |
| Czas trwania: | 3 dni |
| Odbiorcy: | analitycy, developerzy, architekci |
| Zapisy: |
Indywidualne zamówienie i dopasowanie dla grupy. |
| Logistyka: |
W siedzibie klienta lub w innym dowolnym miejscu. |
Autorski program oparty na 11 latach doświadczenia w stosowaniu i nauczaniu DDD.
Warsztat symuluje krytyczne etapy w pracy nad projektem, w którym mamy do czynienia z nietrywialnymi wymaganiami, kilkoma zespołami i wieloma interesariuszami biznesowymi. Zakładamy też, że odpowiedni model da nam przewagę konkurencyjną.
Zakres
- techniki z poziomu Wzorców Taktycznych: Building Blocks DDD wraz z najlepszymi praktykami oraz elementami rozszerzonymi.
- techniki z poziomu Wzorców Strategicznych: Domain Distillation, Bounded Context Mapping,
- poznasz praktyczne podejścia i sposoby prowadzenia sesji modelowania z wykorzystaniem Event Stormingu.
Forma
Pierwszego dnia zaczynamy od Event Stormingu procesowego aby odkryć pod-domeny.
Następnie tworzymy mapę kontekstów, z których dzięki destylacji wyłaniają się generyczne archetypy modeli biznesowych. Na tej podstawie podejmujemy strategiczne decyzje na poziomie współpracy zespołów i izolacji modeli.
Kończymy z projektem krytycznych komponentów ilustrujących problemy techniczne: integracja, optimistic locking, skalowanie.
Drugiego dnia pochylamy się nad wybranymi kontekstami aby stworzyć model taktyczny z wykorzystaniem building blocks. Skupiamy się na granicy agregatów i politykach.
Trzeciego dnia zmieniamy wymagania aby sprawdzić jak zareaguje nasz model. Dodajemy również modelowanie funkcyjne dla dynamicznie zmieniających się reguł.
Formuła warsztatu to kolejne omawianie technik i ich demonstracja przez trenera, po czym uczestnicy w podgrupach samodzielnie przechodzą tą samą ścieżkę na innych wymaganiach. W zadaniach są ukryte pułapki odzwierciedlające realne problemy projektowe, które omawiamy wspólnie po każdym etapie.
Korzyści płynące z wykorzystania DDD
- Techniki i wzorce strategiczne, których celem jest rozwiązanie typowych problemów organizacyjnych
- efektywne techniki prowadzenia sesji modelowania z uczestnictwem Ekspertów Domenowych
- skupienie wysiłku na Core Domain: inwestycja najlepszych ludzi i technik DDD jedynie w krytyczne moduły
- techniki separacji osobnych domen (Bounded Context) wyznaczanych przez granice wiedzy Ekspertów Domenowych, redukcja ryzyka związanego z tworzeniem monolitów
- techniki integracji modułów otwartych na zmiany i skalowanie wydajnościowe
- strategie współpracy zespołów (w tym w modelu outsourcing) pracujących nad osobnymi modułami
- Techniki i wzorce taktyczne, których celem jest rozwiązanie typowych problemów technicznych i jakościowych
- język wzorców dla tworzenia modelu - Building Blocks
- architektury odpowiednie do tworzenia rozszerzalnych systemów
- podejścia wspierające i ułatwiające testowanie automatyczne
- Płynna integracja ze Scrum dzięki podejściu Modeling Whirlpool
Projekt referencyjny
Sprawdź naszą implementację przykładowego projektu DDD+CqRS: Sample Projects.
Implementacja DDD
Techniki implementacji DDD (architektura aplikacyjna i systemowa, wykrzyknienie IoC i ORM) są omawiane na szkoleniu DDD-implementacja, które powinno nastąpić w drugiej kolejności, po szkoleniu z zakresu modelowania.
Wyróżniki warsztatu
- Uświadomisz sobie kompetencje miękkie jakie powinien posiadać Modelarz
- Dowiesz się jak dzielić system na moduły i odkrywać Bounded Contexty
- Uświadomisz sobie decyzje architektoniczne, jakie musisz podjąć na każdym poziomie z C4 oraz poznasz sposoby zdobywania odpowiedzi na te pytania
- Poznasz różne podejścia do modelowania: obiektowe, funkcyjne, oparte o archetypy
Program Warsztatu eksperckiego
Program jest ramą w jakiej możemy się poruszać merytorycznie - program dla konkretnego szkolenia dedykowanego ustalamy z grupą na podstawie analizy przed-szkoleniowej.-
Zadanie wstępne - praca nad systemem, którego granice modułów są niepoprawne- Próba integracji modułów przy pomocy zdarzeń i komend
- Analiza problemów
- Analiza genezy
- Wstęp do wizualizacji architektury systemów
- Podejście C4
- Drivery architektoniczne na każdym poziomie
- Pytania na jakie musimy sobie odpowiedzieć na każdym poziomie
- Podejście C4
- Próba integracji modułów przy pomocy zdarzeń i komend
-
Proces i techniki modelowania- Event Storming
- Notacja
- Fazy: rozbieżna eksploracja, analiza, synteza i krystalizacja modelu
- Facylitacja sesji - Tips and Tricks
- Notacja
- Trzy poziomy Event Stormingu
- Big Picture - otoczenie systemu
- Notacje wspomagające
- Notacje wspomagające
- Process Level
- Techniki odkrywania pod-domen biznesowych
- Techniki destylacji generycznych pod-domen
- Heurystyki proponowania Bounded Contextów
- Mapowanie Bounded Contextów
- Techniki odkrywania pod-domen biznesowych
- Tactical design
- Określanie granic agregatów na podstawie spójności reguł biznesowych
- Określanie granic agregatów na podstawie spójności reguł biznesowych
- Big Picture - otoczenie systemu
- Podejście "od procesu" vs podejście "od domeny" w kontekście modelu Cynefin
- Wstęp do archetypów modeli biznesowych na przykładzie generycznych pod-domen
- Event Storming
-
Wzorce Taktyczne - Building Blocks- Koncepcja języka Wzorców DDD
- Potrzeba większej ilości building blocks niż serwis i encja (procedura i struktura danych)
- Potrzeba większej ilości building blocks niż serwis i encja (procedura i struktura danych)
- Encje
- Obiekty do który możemy odnieść się w formie "ten obiekt"
- Obiekty do który możemy odnieść się w formie "ten obiekt"
- Agregaty
- Hermetyzacja i otwarcie na rozbudowę
- Strategie określania granicy agregatu
- Modelowanie niezmienników
- Techniki lingwistyczne
- Pełne zdania: podmiot.orzeczenie(dopełnienie, przydawka)
- Odwrócenie kolejności: Słowo-Znaczenie(Kontekst)-Reguły
- Pełne zdania: podmiot.orzeczenie(dopełnienie, przydawka)
- Hermetyzacja i otwarcie na rozbudowę
- Value objects
- Obiekty do który możemy odnieść się w formie "taki obiekt"
- Zwiększenie siły wyrazu
- Styl funkcyjny
- Obiekty do który możemy odnieść się w formie "taki obiekt"
- Serwisy Domenowe
- Model procedur biznesowych
- Model procedur biznesowych
- Repozytoria
- Abstrakcja magazynu danych
- Orientacja na model domenowy zamiast na model danych
- Abstrakcja magazynu danych
- Fabryki
- Walidacja
- Logika biznesowa podczas składania obiektów
- Wsparcie dla testability
- Walidacja
- Polityki (strategie)
- Modelowanie w stylu funkcyjnym
- Open Close Principle (SOLID) w praktyce
- Podejście Supple Design
- Dekorowanie
- Umiejscowienie w 4 poziomach modelu
- Modelowanie w stylu funkcyjnym
- Zdarzenia biznesowe
- Decoupling Bounded Context
- Anticorruption Layer
- Decoupling Bounded Context
- Specyfikacje
- Modelowanie złożonych warunków biznesowych
- Modelowanie złożonych warunków biznesowych
- Praktyczne przykłady modelowania biznesowego z wykorzystaniem Building Blocks
- Koncepcja języka Wzorców DDD
-
Wzorce Strategiczne- Bounded Context
- Mapoowanie
- Destylacja
- Strategie integracji
- Shared Kernel - najlepsze praktyki
- Published Language - kiedy warto stosować
- Customer-Supplyier
- Shared Kernel - najlepsze praktyki
- Cztery poziomy modelu
- Mapoowanie
- Bounded Context
-
Architektura aplikacji - uwspólnienie modelu analitycznego i projektowego- Podział logiki na aplikacyjną i domenową
- Podejście warstwowe - rozmieszczenie building blocks na warstwach
- Warstwa interfejsów (prezentacji)
- Warstwa logiki - rozwarstwienie na dwie warstwy logiki
- Logika aplikacyjna (API)
- Model tego CO system powinien robić (User Case lub User Story)
- Zapis Domain Story w formie czytelnej prozy
- Logika domenowa (Building Blocks DDD)
- Model tego JAK i DLACZEGO system powinien się tak zachowywać
- Logika aplikacyjna (API)
- Warstwa infrastruktury
- Dostęp do danych
- Infrastruktura techniczna
- Dostęp do danych
- Warstwa interfejsów (prezentacji)
- Przełożenie Use Case/User Story na warstwę aplikacji
- Przełożenie modelu biznesowego na building blocks warstwy domenowej
- Podział logiki na aplikacyjną i domenową
-
Architektura systemu- Dobór strategii integracji na podstawie wyników Event Stormingu procesowego
- Zarys architektury integracji modułów
- Event Driven Architecture
- Microservices
- Event Driven Architecture
- Dobór strategii integracji na podstawie wyników Event Stormingu procesowego
Pobierz program w formacie PDF
Trenerzy
Poznaj ekspertów, którzy mogą poprowadzić Twój Warsztat.