Adresaci szkolenia

Szkolenie adresowane jest dla doświadczonych programistów języka Java i architektów.

Cel szkolenia

Celem szkolenia jest poznanie narzędzi ułatwiających proces eksploracji domeny i implementacji zachowań zgodnie z wymaganiami biznesowymi.

Mocne strony szkolenia

Szkolenie ma charakter warsztatów przeznaczonych dla doświadczonych programistów lub architektów. Większość szkoleń Event Storming ogranicza się jedynie do procesu odkrywania domeny i jej modelowania. W tym szkoleniu nauczysz się nie tylko czym jest Event Storming, ale również jakie są jego ograniczenia. Dowiesz się, w którym momencie należy rozpocząć implementację, aby uniknąć niejednoznaczności. Przejdziesz przez pełen cykl: rozmowa z klientem, wstępne sprecyzowanie potrzeb, odkrywanie procesu biznesowego i w końcu jego implementacja w języku Java.

W trakcie tego warsztatu uczestnicy pracują razem z trenerem, który w trakcie przykładów wciela się w rolę klienta i eksperta domenowego.

Wymagania

Bardzo dobra znajomość programowania obiektowego, znajomość języka Java i podstawowych technologii z tego ekosystemu.

Specjalne wymagania techniczne

InteliJ Ultimate, Maven, Git, Java 11+.

Parametry szkolenia

Warsztaty, 2 * 8 godzin. Maksymalna liczba uczestników: 8.

Program szkolenia

  1. Wprowadzenie do techniki odkrywania domeny za pomocą Event Storming
    • Omówienie paru przykładowych domen na bazie doświadczeń uczestników: próba wyjaśnienia, czym jest ich domena i jakie procesy w niej zachodzą
    • Identyfikacja przedstawionych elementów (Domain Event, Command etc.) w przykładzie zaproponowanym przez trenera
  2. Znajdowanie Subdomains, Aggregates i Bounded Contexts z informacji zgromadzonych podczas sesji Event Storming
    • Zgromadzenie eventów domenowych na podstawie przykładowej domeny
    • Analiza zgromadzonych eventów (odsiewanie, zadawanie pytań)
    • Próba wyodrębnienia przez uczestników subdomen, agregatów i bounded contexts z zebranych informacji
  3. Warsztat odkrywania przykładowej prostej domeny
    • Powtórka z poprzedniego ćwiczenia, ale na innym, trochę bardziej złożonym przykładzie
  4. Wyodrębnianie przykładów wyrażonych w postaci testów jednostkowych po sesji Event Storming
    • Przełożenie zebranych informacji na przykłady
    • Przetłumaczenie przykładów na testy jednostkowe, które będą stanowić podstawę kodu i dalszej pracy
    • Doprecyzowanie zachowania systemu na podstawie testów, powrót do modelowania i pokazanie cyklu pracy
  5. Example Mapping w kontekście Event Storming
    • Tworzenie konkretnych przykładów zachowań systemu na bazie danych z sesji Event Storming
    • Ćwiczenie podobne do poprzedniego, ale używając trochę bardziej uporządkowanego podejścia (Example Mapping)
  6. Warsztat odkrywania złożonej domeny
    • Rozbudowane ćwiczenia odkrywania przykładowej domeny
    • Przejście przez pełen proces
    • Napisanie fragmentów kodu implementującego wybrane zachowania
  7. Techniki implementacji agregatów
    • Naiwna implementacja agregatu i problemy z tym związane
    • Agregaty jako granice transakcji i zachowań biznesowych
    • Projektowanie zależności między agregatami
    • Komunikacja między agregatami
    • Projektowanie optymalnego rozmiaru agregatu
    • Utrwalanie agregatów i ograniczenia w systemach relacyjnych
  8. Komunikacja między bounded contexts
    • Implementacja bounded contexts w postaci modułów JPMS, modułów Maven oraz osobnych aplikacji
    • Bounded contexty jako (mikro)serwisy
    • Komunikacja synchroniczna (np. przez REST) vs asynchroniczna
    • Komunikacja za pomocą eventów

Agenda:

  • Wprowadzenie do techniki odkrywania domeny za pomocą Event Storming (1 h)
  • Wyjaśnienie notacji (20 min)
  • Warsztat odkrywania przykładowej prostej domeny (2 h)
  • Wyodrębnianie przykładów wyrażonych w postaci testów jednostkowych po sesji Event Storming (1 h)
  • Event Storming w projektach greenfield oraz legacy: różnice (30 min)
  • Relacja między TDD, BDD, DDD a Event Storming (45 min) zgromadzonych podczas sesji Event Storming (1 h)
  • Example Mapping w kontekście Event Storming (45 min)
  • Znajdowanie Subdomains, Aggregates i Bounded Contexts z informacji (1 h)
  • Kiedy należy rozpocząć implementację (15 min)
  • Iteracyjność procesu modelowania przy użyciu Event Storming (15 min)
  • Warsztat odkrywania złożonej domeny (3 h)
  • Techniki implementacji agregatów (1 h)
  • Komunikacja między bounded contexts (1 h)

Pytania?

* Wymagane.


Konsultant on-line
Skorzystaj z usług naszego konsultanta on-line.
Naciśnij przycisk ‘Skorzystaj’ aby przejść do okienka czatu
Kontakt
ul. Nowogrodzka 62c
02-002 Warszawa
Telefon +48 22 2035600
Fax +48 22 2035601
Email