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