Domain-Driven Design (DDD) a Event Storming

Domain-Driven Design (DDD) i Event Storming są ze sobą ściśle powiązane i mogą być używane razem jako skuteczne narzędzia do projektowania i rozwijania oprogramowania.

DDD to podejście do projektowania oprogramowania, które skupia się na modelowaniu dziedziny biznesowej i tworzeniu odpowiednich struktur i abstrakcji, które odzwierciedlają tę dziedzinę. Głównym celem DDD jest zrozumienie biznesu i skoncentrowanie się na wartości biznesowej przy tworzeniu oprogramowania.

Event Storming jest techniką, która doskonale wpisuje się w idee DDD. Event Storming pomaga w identyfikacji kluczowych wydarzeń biznesowych, które mają znaczenie dla systemu. Wydarzenia są fundamentem dla analizy dziedziny biznesowej w DDD. Poprzez wykorzystanie Event Stormingu, zespół może skoncentrować się na odkrywaniu i modelowaniu wydarzeń biznesowych, co prowadzi do lepszego zrozumienia dziedziny biznesowej.

Podczas sesji Event Storming, uczestnicy tworzą tzw. mapy zdarzeń (event maps) lub modele zdarzeń (event models), które przedstawiają wydarzenia, komendy, agregaty i zależności między nimi. Te modele mogą służyć jako podstawa do tworzenia modeli dziedziny w DDD, takich jak agregaty, encje, wartości i serwisy.

Event Storming może być używany zarówno na początku projektu, aby zidentyfikować i zrozumieć dziedzinę biznesową, jak i w późniejszych fazach projektu, aby iteracyjnie ulepszać modele dziedziny. Jest to dynamiczna metoda, która umożliwia szybkie prototypowanie i eksplorację różnych scenariuszy biznesowych, co jest zgodne z ideą iteracyjnego rozwoju w DDD.

Stosowanie Event Stormingu w połączeniu z DDD przynosi wiele korzyści, takich jak lepsze zrozumienie dziedziny biznesowej, skupienie na wartości biznesowej, identyfikacja granic agregatów, odkrywanie ukrytej wiedzy ekspertów biznesowych i łączenie różnych perspektyw. W rezultacie można tworzyć lepiej dopasowane do biznesu i bardziej elastyczne systemy oprogramowania. Na naszym polskim rynku jest dużo fajnych materiałów, gdzie możemy pogłębiać wiedzę. Ja ze swojej strony polecam Better Software Design podcast - gdzie Mariusz Gil, prowadzi świetne rozmowy.

Last updated