Domain Driven Design - projektowanie modeli złożonych domen (część 1)

Warsztat ekspercki to coś więcej niż szkolenie. To praca w kontekście konkretnych problemów.

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: architekci, analitycy, developerzy
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.

  1. Zadanie wstępne - praca nad systemem, którego granice modułów są niepoprawne
    1. Próba integracji modułów przy pomocy zdarzeń i komend
    2. Analiza problemów
    3. Analiza genezy
    4. Wstęp do wizualizacji architektury systemów
      1. Podejście C4
      2. Drivery architektoniczne na każdym poziomie
      3. Pytania na jakie musimy sobie odpowiedzieć na każdym poziomie
  2. Proces i techniki modelowania
    1. Event Storming
      1. Notacja
      2. Fazy: rozbieżna eksploracja, analiza, synteza i krystalizacja modelu
      3. Facylitacja sesji - Tips and Tricks
    2. Trzy poziomy Event Stormingu
      1. Big Picture - otoczenie systemu
        1. Notacje wspomagające
      2. Process Level
        1. Techniki odkrywania pod-domen biznesowych
        2. Techniki destylacji generycznych pod-domen
        3. Heurystyki proponowania Bounded Contextów
        4. Mapowanie Bounded Contextów
      3. Tactical design
        1. Określanie granic agregatów na podstawie spójności reguł biznesowych
    3. Podejście "od procesu" vs podejście "od domeny" w kontekście modelu Cynefin
    4. Wstęp do archetypów modeli biznesowych na przykładzie generycznych pod-domen
  3. Wzorce Taktyczne - Building Blocks
    1. Koncepcja języka Wzorców DDD
      1. Potrzeba większej ilości building blocks niż serwis i encja (procedura i struktura danych)
    2. Encje
      1. Obiekty do który możemy odnieść się w formie "ten obiekt"
    3. Agregaty
      1. Hermetyzacja i otwarcie na rozbudowę
      2. Strategie określania granicy agregatu
      3. Modelowanie niezmienników
      4. Techniki lingwistyczne
        1. Pełne zdania: podmiot.orzeczenie(dopełnienie, przydawka)
        2. Odwrócenie kolejności: Słowo-Znaczenie(Kontekst)-Reguły
    4. Value objects
      1. Obiekty do który możemy odnieść się w formie "taki obiekt"
      2. Zwiększenie siły wyrazu
      3. Styl funkcyjny
    5. Serwisy Domenowe
      1. Model procedur biznesowych
    6. Repozytoria
      1. Abstrakcja magazynu danych
      2. Orientacja na model domenowy zamiast na model danych
    7. Fabryki
      1. Walidacja
      2. Logika biznesowa podczas składania obiektów
      3. Wsparcie dla testability
    8. Polityki (strategie)
      1. Modelowanie w stylu funkcyjnym
      2. Open Close Principle (SOLID) w praktyce
      3. Podejście Supple Design
      4. Dekorowanie
      5. Umiejscowienie w 4 poziomach modelu
    9. Zdarzenia biznesowe
      1. Decoupling Bounded Context
      2. Anticorruption Layer
    10. Specyfikacje
      1. Modelowanie złożonych warunków biznesowych
    11. Praktyczne przykłady modelowania biznesowego z wykorzystaniem Building Blocks
  4. Wzorce Strategiczne
    1. Bounded Context
      1. Mapoowanie
      2. Destylacja
      3. Strategie integracji
        1. Shared Kernel - najlepsze praktyki
        2. Published Language - kiedy warto stosować
        3. Customer-Supplyier
      4. Cztery poziomy modelu
  5. Architektura aplikacji - uwspólnienie modelu analitycznego i projektowego
    1. Podział logiki na aplikacyjną i domenową
    2. Podejście warstwowe - rozmieszczenie building blocks na warstwach
      1. Warstwa interfejsów (prezentacji)
      2. Warstwa logiki - rozwarstwienie na dwie warstwy logiki
        1. Logika aplikacyjna (API)
        2. Model tego CO system powinien robić (User Case lub User Story)
        3. Zapis Domain Story w formie czytelnej prozy
        4. Logika domenowa (Building Blocks DDD)
        5. Model tego JAK i DLACZEGO system powinien się tak zachowywać
      3. Warstwa infrastruktury
        1. Dostęp do danych
        2. Infrastruktura techniczna
    3. Przełożenie Use Case/User Story na warstwę aplikacji
    4. Przełożenie modelu biznesowego na building blocks warstwy domenowej
  6. Architektura systemu
    1. Dobór strategii integracji na podstawie wyników Event Stormingu procesowego
    2. Zarys architektury integracji modułów
      1. Event Driven Architecture
      2. Microservices


Pobierz program w formacie PDF

Trenerzy

Poznaj ekspertów, którzy mogą poprowadzić Twój Warsztat.

Materiały związane z warsztatem

Idea renesansowej pracowni - Bottegi zakłada nieustanną pracę jej członków i dzielenie się jej wynikami.

Wymagania przed warsztatem

Podczas szkolenia będą potrzebne:
  • flipchart
  • projektor
  • pomieszczenie umożliwiające pracę poza stołami (np przy ścianach)

Zamów warsztat

Imię i nazwisko:
Firma:
E-mail:
Nr tel:
Temat:
Wiadomość:

Jeżeli preferujesz osobisty kontakt to zawsze możesz zadzwonić.

Iwona Sobótka

Koordynatorka szkoleń


Twoje dane osobowe przetwarzamy, aby udzielić odpowiedzi na Twoje pytanie. Administratorem Twoich danych osobowych jest Bottega It Minds Sławomir Sobótka. Przysługuje Ci prawo wniesienia sprzeciwu wobec przetwarzania, prawo dostępu do danych, prawo żądania ich sprostowania, usunięcia lub ograniczenia ich przetwarzania. Szczegółowe informacje dotyczące przetwarzania Twoich danych osobowych znajdują się TUTAJ.