Modularyzacja systemu - analiza granic i projektowanie API

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

Kod: Arch-mod
Kategoria: Architektura systemów i aplikacji
Forma: 40% wykłady / 60% warsztaty
Czas trwania: 3 dni
Odbiorcy: developerzy, architekci
Zapisy: Indywidualne zamówienie i dopasowanie dla grupy.
Logistyka: W siedzibie klienta lub w innym dowolnym miejscu.

Na na 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.

  1. Kontekst strategiczny (punkt opcjonalny)
    1. Pytania
      1. Ryzyka i szanse
      2. Otoczenie systemu
      3. Poszukiwanie Core Domain
      4. Integracja z 3rd party/legacy
    2. Techniki pozyskiwania informacji
      1. Event Storming - Big Picture
      2. Domain Story telling
      3. User story mapping
      4. Value stream mapping
    3. Techniki dokumentowania
      1. C4 - context level
  2. Projektowanie granic logicznych - komponenty
    1. Pytania
      1. Spójność danych
      2. Poszukanie właściciela danych i reguł
      3. Klasa złożoności logiki biznesowej i technicznej
      4. Autonomia pracy zespołu
      5. Samowystarczalność w razie awarii innych modułów
    2. Techniki zbierania informacji
      1. Event Storming - process level
      2. Analiza zmienności pod kątem głównych pytań biznesowych
      3. Analiza alternatywnych wejść i wyjść z procesu
      4. Analiza granic słownictwa
      5. Analiza zmiany istoty obiektów biznesowych
    3. Techniki analityczne
      1. Odkrywanie splątanych i ukrytych pod-domen biznesowych
      2. Destylacja Bounded Context
      3. Mapowanie kontekstów w celu określenia granic modeli
        1. Mapa
        2. Strategie mapowania
        3. Open host
        4. Shared kernel
        5. Customer/supplier
        6. Published language
        7. Anti-corruption layer
    4. Techniki dokumentowania
      1. C4 - components level
  3. Projektowanie API komponentów
    1. Zapobieganie przeciekaniu kontekstów
      1. Dobór architektury na podstawie mapy kontekstów
    2. Wybór stylu API (niekoniecznie wzorca implementacji)
      1. Command
        1. Command jako dokument Restful
        2. Poprawne mapowanie zasobów i endpointów
      2. Event
        1. Najlepsze praktyki
        2. Język publiczny
        3. Wewnętrzna saga/process manager emitujący zdarzenia publiczne
        4. Antywzorce
        5. Opresyjne zdarzenia
        6. Przeciekanie domen
      3. Query
    3. Podejścia techniczne
      1. Restful
        1. Dokument jako command a nie encja z bazy
      2. Command-query Responsibility segregation
        1. Dobór read modelu do klasy problemu
    4. Wzorce
      1. Service
      2. Command + handler
      3. Event bus
      4. Event broker
    5. Adresowanie dodatkowych wymagań
      1. Wersjonowanie API
      2. Multi-tenancy
    6. Dobór strategii testowania
      1. Opracowanie macierzy: zakres testu VS cel testy
        1. Cele
        2. Sprawdzenie perfekcji działania logiki
        3. Akceptacja ogólnego postępu prac
        4. Regresja
        5. Środowisko integracyjne
        6. Zakres
        7. Unit
        8. End2end komponentowy
        9. End2end systemowy
      2. Narzędzia
  4. Integracja komponentów
    1. Orkiestracja
    2. Choreografia
    3. Wzorce
      1. Saga/Process manager
      2. Generyczne API
      3. Inbox pattern
      4. Outbox pattern
        1. Zapewnienie at least once delivery
  5. Przygotowanie kodu modularnego monolitu do transformacji w microservices
    1. Pułapki
      1. Granice spójność
      2. Lokalny event broker musi mieć kontrakt taki sam jak zdalny


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.