| Tytuł: | Modularyzacja systemu - analiza granic i projektowanie API |
| Kod: | Arch-mod |
| Kategoria: | Architektura systemów i aplikacji |
| Forma: | 40% wykłady / 60% warsztaty |
| Czas trwania: | 3 dni |
| Odbiorcy: | architekci, developerzy |
| Zapisy: |
Indywidualne zamówienie i dopasowanie dla grupy. |
| Logistyka: |
W siedzibie klienta lub w innym dowolnym miejscu. |
Na tym szkoleniu nie zadowalamy się prostokątami połączonymi kreskami, nad którymi widnieje napis "communication". Niezależnie od tego czy projektujesz modularny monolit czy rozproszony system (przykładowo microservices) musisz zadbać o odpowiednie określenie granic modułów.
Bez tego skończysz a zapachami architektury "feature envy" albo "data envy", co w runtime wygląda jak orgia modułów. Dobrze określone granice zapewnią ci autonomię, czyli możliwość niezależnego eksperymentowania z modelem, z kodem, z pomysłami biznesowymi bez wchodzenia zespołów sobie wzajemnie w drogę.
Program szkolenia przeprowadzi Cię przez kompletny proces:
- Pozyskiwanie wiedzy o procesach biznesowych z wykorzystaniem Event Stormingu na poziomie procesowym
- Analiza i projektowanie granic z wykorzystaniem strategicznych technik Domain-driven design, które zmuszają nas do zastanowienia się nad granicami pod-domen biznesowych i kontekstów modeli
- Projektowanie API modułów i wybór technik integracyjnych z wykorzystaniem notacji C4 dokumentowania architektury
Wyróżniki warsztatu
- Integracja technik Event Stormingu, strategicznego Domain Driven Design, C4
- Sprawdzone heurystyki określania granic
- Wybrane wzorce projektowe na poziomie API i integracji systemów
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.-
Kontekst strategiczny (punkt opcjonalny)- Pytania
- Ryzyka i szanse
- Otoczenie systemu
- Poszukiwanie Core Domain
- Integracja z 3rd party/legacy
- Ryzyka i szanse
- Techniki pozyskiwania informacji
- Event Storming - Big Picture
- Domain Story telling
- User story mapping
- Value stream mapping
- Event Storming - Big Picture
- Techniki dokumentowania
- C4 - context level
- C4 - context level
- Pytania
-
Projektowanie granic logicznych - komponenty- Pytania
- Spójność danych
- Poszukanie właściciela danych i reguł
- Klasa złożoności logiki biznesowej i technicznej
- Autonomia pracy zespołu
- Samowystarczalność w razie awarii innych modułów
- Spójność danych
- Techniki zbierania informacji
- Event Storming - process level
- Analiza zmienności pod kątem głównych pytań biznesowych
- Analiza alternatywnych wejść i wyjść z procesu
- Analiza granic słownictwa
- Analiza zmiany istoty obiektów biznesowych
- Event Storming - process level
- Techniki analityczne
- Odkrywanie splątanych i ukrytych pod-domen biznesowych
- Destylacja Bounded Context
- Mapowanie kontekstów w celu określenia granic modeli
- Mapa
- Strategie mapowania
- Open host
- Shared kernel
- Customer/supplier
- Published language
- Anti-corruption layer
- Open host
- Mapa
- Odkrywanie splątanych i ukrytych pod-domen biznesowych
- Techniki dokumentowania
- C4 - components level
- C4 - components level
- Pytania
-
Projektowanie API komponentów- Zapobieganie przeciekaniu kontekstów
- Dobór architektury na podstawie mapy kontekstów
- Dobór architektury na podstawie mapy kontekstów
- Wybór stylu API (niekoniecznie wzorca implementacji)
- Command
- Command jako dokument Restful
- Poprawne mapowanie zasobów i endpointów
- Command jako dokument Restful
- Event
- Najlepsze praktyki
- Język publiczny
- Wewnętrzna saga/process manager emitujący zdarzenia publiczne
- Język publiczny
- Antywzorce
- Opresyjne zdarzenia
- Przeciekanie domen
- Opresyjne zdarzenia
- Najlepsze praktyki
- Query
- Command
- Podejścia techniczne
- Restful
- Dokument jako command a nie encja z bazy
- Dokument jako command a nie encja z bazy
- Command-query Responsibility segregation
- Dobór read modelu do klasy problemu
- Dobór read modelu do klasy problemu
- Restful
- Wzorce
- Service
- Command + handler
- Event bus
- Event broker
- Service
- Adresowanie dodatkowych wymagań
- Wersjonowanie API
- Multi-tenancy
- Wersjonowanie API
- Dobór strategii testowania
- Opracowanie macierzy: zakres testu VS cel testy
- Cele
- Sprawdzenie perfekcji działania logiki
- Akceptacja ogólnego postępu prac
- Regresja
- Środowisko integracyjne
- Sprawdzenie perfekcji działania logiki
- Zakres
- Unit
- End2end komponentowy
- End2end systemowy
- Unit
- Cele
- Narzędzia
- Opracowanie macierzy: zakres testu VS cel testy
- Zapobieganie przeciekaniu kontekstów
-
Integracja komponentów- Orkiestracja
- Choreografia
- Wzorce
- Saga/Process manager
- Generyczne API
- Inbox pattern
- Outbox pattern
- Zapewnienie at least once delivery
- Zapewnienie at least once delivery
- Saga/Process manager
- Orkiestracja
-
Przygotowanie kodu modularnego monolitu do transformacji w microservices- Pułapki
- Granice spójność
- Lokalny event broker musi mieć kontrakt taki sam jak zdalny
- Granice spójność
- Pułapki
Pobierz program w formacie PDF
Trenerzy
Poznaj ekspertów, którzy mogą poprowadzić Twój Warsztat.