dla Architektów Oprogramowania
2 godz. 1 min · Full-stack i Programowanie
Rafał PiekaraSoftware KomandosZanurzymy się w definiowanie strategicznych wzorców Domain Driven Design, które stanowią fundament efektywnego zrozumienia problemów biznesowych. Omówimy kluczowe koncepty takie jak Subdomena czy Bounded Context.
Wzorce taktyczne to praktyczne aspekty DDD, które są kluczowe dla każdego architekta oprogramowania. W tej sekcji mocniej spojrzymy na kod. Dowiesz się, jak stosować i testować wzorce takie jak Value Object, Encja czy Agregat.
Bazy danych to serce wielu systemów, a ich prawidłowe użycie w kontekście DDD jest kluczowe. Omówimy najlepsze praktyki związane z integracją domeny i kontekstów z tabelami bazodanowymi. Poznasz techniki, które pozwolą Ci zachować integralność danych i spójność modelu domenowego, niezależnie od wybranej technologii bazodanowej.
Teoria jest ważna, ale praktyka czyni mistrza. Przejdziemy przez konkretne przykłady implementacji DDD w rzeczywistych projektach. Zobaczysz krok po kroku zastosowanie wzorców, zamodelowanie domeny i implementację. Praktyczne przykłady pomogą Ci zrozumieć, jak stosować DDD w codziennej pracy i jak wpływa to na komunikację z interesariuszami biznesowymi.
Każdy architekt oprogramowania spotkał się z systemami, które były nieczytelne i trudne do utrzymania - tak zwanymi "Big Ball of Mud". Nauczysz się, jak za pomocą DDD przeprowadzić refaktoryzację takiego systemu, przekształcając go w dobrze zorganizowane i zarządzalne struktury.
Kurs powstał z myślą o programistach aspirujących do roli architektów, architektach oprogramowania oraz liderach technicznych, którzy chcą pogłębić swoją wiedzę i umiejętności w zakresie stosowania Domain Driven Design. To materiał idealny dla tych, którzy znają już podstawy DDD i chcą podnieść swoje umiejętności na wyższy poziom, aby projektować złożone i skalowalne systemy. Niezależnie od tego, czy pracujesz nad dużymi projektami, chcesz usprawnić komunikację z zespołem i interesariuszami, czy szukasz nowych strategii na rozwiązywanie skomplikowanych problemów biznesowych - ten kurs jest dla Ciebie!
O ile domena to serce naszego biznesu, będziemy potrzebować też innych narządów,
które sprawiają, że organizm naszego systemu dobrze funkcjonuje.
Takimi innymi narządami są subdomeny.
Jak wyglądają pierwsze kroki do zdefiniowania subdomen?
Mamy już domenę, więc jest nam łatwiej.
Wiemy, w jakim obszarze biznesowym się poruszamy, więc teraz pora skupić
się na specyficznych problemach.
Idziemy bardziej w konkrety i szukamy je kluczowych zdarzeń i
procesów w poszczególnych obszarach.
Odkrywanie subdomen prowadzi do podziału głównej domeny i stworzenia czegoś w
rodzaju specyfikacji funkcjonalnej.
Czyli mamy już bardzo konkretne feature.
Nie szukamy bardzo ogólnych, abstrakcyjnych pojęć.
Nie jesteśmy już na etapie PTK krótkiej mowy prezentującej nasz system.
Szukamy konkretnych implementacji, konkretnych zastosowań,
konkretnych obszarów logicznych.
Tutaj już wchodzi pogłębiona analiza, bo musimy wejść głębiej w zdarzenia i procesy
i pogrupować sobie funkcjonalności. Więc mamy.
A uwaga to co widzieliśmy na event streamingu już tutaj
będzie bardzo pomocne.
Skupiamy się na konkretnej części biznesu.
Analizując subdomenę już nie patrzymy na całość, ale np.
idziemy tylko na fakturowanie albo idziemy tylko na składanie zamówień i tam
szukamy zdarzeń i procesów biznesowych.
Więc event farming, event storage to jest narzędzie, które nam bardzo w tym pomaga.
To jest też etap, w którym powstaje model domenowe, model domenowe, czyli
zestaw powiązań operacji logicznych w naszym systemie.
Model cenowy uwzględnia zależności i interakcje pomiędzy poszczególnymi
elementami, uwzględnia komendy zdarzenia, uwzględnia już grupy agregatów.
Będziemy szukać tych aktorów i grupować funkcjonalności, ale takie
funkcjonalności, które mają znaczenie dla biznesu.
Cechą szczególną subdomeny jest spójność.
Subdomena musi być spójna z domeną główną, Żeby się upewnić, że tak faktycznie jest.
Konsultujemy się z interesariuszami biznesowymi.
Czyli ta analiza i komunikacja cały czas ma miejsce.
To nie jest tak, że tylko na tym pierwszym etapie zapoznania z problemem biznesowym,
z systemem musimy być w dialogu jako techniczne osoby.
Musimy być w dialogu z osobami z biznesu cały czas ten dialog tutaj musi zachodzić.
I na koniec uwaga surprise, surprise, dokumentacja.
Pilnujemy tego, żeby subdomeny były dobrze udokumentowane.
Droga, którą przeszliśmy do wydzielenia danej subdomeny oraz to co ją wyróżnia
na tle innych subdomen powinno być jasno zdefiniowane w dokumentacji,
co pozwoli nam z kolei zaplanować implementację w kontekście całości, czyli
w kontekście rozumienia całej domeny.
A ta implementacja to już jest wydzielanie granic z kontekstu.
Więc jak odkrywamy konteksty?
Zapraszam do kolejnej lekcji.