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

Formuła on-line z wykorzystaniem komunikatorów video.

Kod: ddd-workshop-DDD
Kategoria: Warsztaty eksperckie DDD
Forma: 60% wykłady / 40% warsztaty
Czas trwania: 3 dni
Prowadzący: Sławomir Sobótka
Grupa docelowa: architekci
developerzy
analitycy
Koszt:
1500 zł + 23% VAT
Lokalizacja: online
Data: 30.11.2020 - 02.12.2020
BRAK MIEJSC
Zapisy do: 21.11.2020

Autorski program oparty na 10 latach doświadczenia w stosowaniu i nauczaniu DDD. Zarys DDD Domain Driven Design jest obecnie jedyną metodyką, która w sposób kompleksowy wspiera od strony technicznej zwinne podejście do wytwarzania oprogramowania.

Kompleksowe podejście DDD obejmuje: modelowanie złożonych domen we współpracy z Ekspertem Domenowym, zalecane architektury i projektowanie z wykorzystaniem sprawdzonych Building Blocks aż po techniki tworzenia testowalnego kodu, który z założenia jest otwarty na iteracyjny proces rozbudowy i kruszenia wiedzy (Knowledge Crunching).

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

Zakres

Techniki modelowania problemów biznesowych
  • 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,
  • poznasz praktyczne podejścia i sposoby prowadzenia sesji modelowania.

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.

Forma

Przyrostowe stosowanie wiedzy w praktyce

Szkolenie prowadzone jest w formie, która łączy następujące po sobie na przemian wykłady, warsztaty i dyskusje.

Podczas wykładów trener prezentuje kolejne rozdziały wiedzy merytorycznej, uzupełniając je o komentarze na podstawie własnych doświadczeń.

Podczas warsztatów tworzymy 5 modułów systemu, z których każdy charakteryzuje się inną klasą złożoności. Kolejne zadania polegają na przyrostowym dodawaniu nowych funkcjonalności w sposób ilustrujący zagadnienia teoretyczne poznane podczas poprzedzającego je wykładu.

Podczas dyskusji uczestnicy mają dostęp do wiedzy eksperckiej trenera oraz mają możliwość zweryfikowania swoich rozwiązań z wypracowanymi przez innych uczestników szkolenia.

Trzy sesje modelowania Event Storming

W trakcie kolejnych sesji modelowania (Big Picture, Process Level, Tactical Design) uczestniczy rozwiązują postawione przed nimi problemy pracując nad modelem w grupach.

Projekt referencyjny

Sprawdź naszą implementację przykładowego projektu DDD+CqRS: Sample Leaven.

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

  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
  2. 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
  3. 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
    5. Techniki lingwistyczne
      1. User Story vs Domain Story
      2. Gibberish Game - usuwanie dwuznaczności i odkrywanie nowych koncepcji domenowych
    6. Techniki wizualizacji
      1. Grupowanie operacji wokół niezmienników
      2. Metafory wizualne realnych Agregatów
  4. 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
  5. 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
  6. 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
  7. 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 eksperta, który będzie poprowadzić Twój Warsztat.

Zapisz się na 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ń


Wyrażam zgodę na przetwarzania danych osobowych zgodnie z ustawą o ochronie danych osobowych w związku z wysłaniem zapytania przez formularz kontaktowy.

Podanie danych jest dobrowolne ale niezbędne do przetworzenia zapytania. Zastałem/am poinformowany/na, że przysługuje mi prawo dostępu do swoich danych, możliwości ich poprawienia, żądania zaprzestania ich przetwarzania.

Administratorem danych osobowych jest Bottega IT Minds, ul. Jana Sawy 2, 20-632 Lublin.


Klauzula informacyjna

Materiały związane z warsztatem

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