Implementacja Domain Driven Design - wzorce architektoniczne (część 2)

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

Tytuł: Implementacja Domain Driven Design - wzorce architektoniczne (część 2)
Kod: DDD-impl
Kategoria: Warsztaty eksperckie DDD
Forma: 50% wykłady / 50% warsztaty
Czas trwania: 2 dni
Odbiorcy: developerzy
Zapisy: Indywidualne zamówienie i dopasowanie dla grupy.
Logistyka: W siedzibie klienta lub w innym dowolnym miejscu.

Pragmatyczne podejście do implementacji DDD w wybranej technologii: Java, NET, PHP, RoR.

Wyróżniki warsztatu

  • Omówienie najczęstszych błędów w implementacji Agregatów
  • Najlepsze praktyki i pułapki podczas stosowania ORM i IoC
  • Nowoczesne architektury: CqRS, Event Driven, Event Sourcing

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. Architektura aplikacji - praktyczna implementacja koncepcji architektonicznych
    1. Wykorzystanie IoC przy projektowaniu z myślą o jakości - otwartość projektu na rozbudowę i testy
      1. Dependency Injection - pluginy zmieniające zachowanie systemu
      2. Zdarzenia - pluginy dodające nowe zachowanie
      3. AOP - aspekty ortogonalne (transakcje, bezpieczeństwo, audyty)
    2. Podejście warstwowe - rozmieszczenie building blocks na warstwach
      1. Strukturyzacja systemu
        1. Moduły - budowanie
        2. Pakiety/namespaces
      2. Warstwa prezentacji
        1. Ochrona domeny przed wyciekaniem do UI
      3. Logika aplikacyjna
        1. Projektowanie API systemu
        2. Problem uczciwego API - wersjonowanie obiektów
      4. Logika domenowa (Building Blocks DDD)
        1. Widoczność klas - wykorzystanie zasięgu pakietowego
      5. Warstwa infrastruktury
        1. Wyzwania ORM
        2. Pułapki architektury zdarzeniowej
  2. Architektura systemu
    1. Zasady SOA w Mikroserwisach
      1. Zasada jednego źródła prawdy
      2. Unikanie antywzorce "Corporate Model"
      3. Hermetyzacja modeli domenowych poniżej Modelu Kanonicznego
    2. Event Driven Architecture
      1. Unikanie Single Point of Failure
      2. Event Broker vs Events Bus
      3. Eventual Consistency - strategie
    3. Problem transakcyjności zdarzeń
  3. Implementacja Wzorców Taktycznych - Building Blocks
    1. Encje
      1. Mapowanie ORM
      2. Klasy bazowe - wzorzec Layer Superclass
      3. Hermetyzacja
      4. Identyfikacja
    2. Agregaty
      1. Hermetyzacja i otwarcie na rozbudowę
      2. Wymuszanie określonej granicy agregatu
      3. Wstrzykiwanie zależności w Fabrykach
      4. Wyzwania ORM
        1. Wersjonowanie
        2. Pułapki Lazy Loadingu
        3. Mapowanie kompozycji UML - unikanie tabel linkujących
        4. Dobór odpowiedniego typu kolekcji: Set, Bag, List
        5. Koszt (ilość operacji SQL) wykorzystania każdego z typów kolekcji
    3. Value objects
      1. Immutability
      2. Mapowanie ORM
    4. Serwisy Domenowe
      1. Zarządzanie przez IoC
    5. Repozytoria
      1. Wstrzykiwanie zależności
      2. Aspekty ORM
        1. Odczyt EAGER Agregatów o dobrze zaprojektowanej granicy
        2. Kaskadowy zapis Agregatów o dobrze zaprojektowanej granicy
        3. 3 podejścia do optymistycznego blokowania
        4. Odczyt agregatów: blokowanie READ w celu zabezpieczenia obiektów tworzonych na podstawie odczytywanych agregatów
        5. Zapis agregatów: blokowanie WRITE korzenia agregaty w celi logicznej ochrony całego agregatu
      3. Izolacje transakcji
      4. Operacje na klasie bazowej agregatu
        1. Wersjonowanie
        2. Problem identyfikacji
        3. Audyty - wykorzystanie JPA: Callbacks i Listeners
    6. Fabryki
      1. Fabryki zarządzane przez IoC
      2. Wstrzykiwanie zależności do Agregatów
      3. Wsparcie dla testability
      4. Zarządzanie Couplingiem Agregatów
      5. Teoria Couplingu C3
        1. Call
        2. Contain
        3. Create
    7. Polityki (strategie)
      1. Dekorowanie
      2. Wstrzykiwanie polityk jako pluginów
    8. Zdarzenia biznesowe
      1. Podejście asynchroniczne
      2. Architektura pluginów
    9. Specyfikacje
      1. Modelowanie złożonych warunków biznesowych
      2. Filtrowanie danych w repozytoriach
      3. Dyskusja nad wydajnością
    10. Saga - model procesu biznesowego
      1. Projekt frameworka zarządzającego Sagą
      2. Pułapki techniczne
    11. Role Object
      1. Model ról - gdy system powinien zachowywać się (nie tylko wyglądać) inaczej w zależności od roli domenowej użytkownika
    12. Dodatkowe wzorce - rozszerzenia Building Blocks
      1. Dekoratory Polityk - Supple Design
      2. Agregat jako maszyna stanów
      3. Łańcuch odpowiedzialności
      4. Budowniczy
  4. Architektura Command-query Responsibility Segregation
    1. CqRS jako rozwinięcie architektury warstwowej
      1. Koncepcja intencjonalnego GUI
      2. Dwa stosy warstw
    2. Stos Write
      1. Zakres odpowiedzialności
      2. Modelowanie scenariuszy (orkiestracja obiektów domenowych)
      3. Aspekty techniczne (zależności, transakcje)
      4. Implementacje
        1. Serwisy
        2. Command i CommandHandler
        3. Wykorzystanie noSQL - Bazy dokumentowe
    3. Stos Read
      1. Problemy z wydajnością klasycznych podejść
      2. Modelowanie kwerend
      3. Projektowanie modelu do odczytu
      4. Implementacja
        1. SQL
        2. Widoki zmaterializowane
        3. Osobny model
        4. Uaktualnianie modelu do odczytu
        5. noSQL - bazy grafowe
    4. Event Sourcing
      1. Sekwencja zdarzeń jako model behawioralny
      2. Projekcje modelu behawioralnego na model do odczytu
      3. Pojęcie Eventual Consistency
      4. Implementacja Agregatów sterowanych zdarzeniami
  5. Testowanie automatyczne
    1. Strategia testowania - mapowanie piramidy testów na warstwy aplikacji
      1. UI - end-to-end systemowe
      2. Logika aplikacyjna - testowanie end-to-end komponentowe
      3. Logika domenowa - testowanie jednostkowe
        1. Testowanie niezmienników modelu
    2. Cel testowania
      1. Perfekcja i regresja - testy jednostkowe Building Blocks domenowych
      2. Akceptacje - testy API i UI
    3. Techniki
      1. Zaślepki
        1. Mock - metody typu command
        2. Stub - metody typu query
      2. Konstruktory Agregatów umożliwiające wprowadzenie ich w dowolny stan
      3. Fabryki Agregatów zwiększające testability
      4. Zarządzanie Couplingiem C3
    4. Wzorce
      1. Assembler - przygotowanie Agregatów
      2. Assert Object - hipotezy biznesowe Agregatów


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.

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.