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!
Rezerwacja hali sportowej, zwłaszcza w małych miejscowościach, może przysporzyć
wielką zgryzot tym, którzy chcą sobie weekendowo pokopać piłkę.
Żeby to umożliwić, spróbujmy stworzyć podwaliny pod system, który te
rezerwacje będzie automatyzować.
I tego dotyczy kolejny przykład.
Mamy tutaj przykład kodu rezerwacji hali sportowej, bardzo podobny
do tego, co mieliśmy wcześniej z przykładem domeny hotelowej.
Zobaczysz teraz jak Domain Tree Design pozwala tworzyć używane elementy.
Pewne wzorce, które będą charakterystyczne dla jednej domeny, będzie
można przenieść na inną.
I tę praktykę możesz nabrać właśnie projektując
system w oparciu o Domain Driven Design. Zobaczmy.
Value Object mamy pierwszy Value Object.
To jest Facility ID, czyli identyfikator naszej hali sportowej.
Mamy wyjątek klasyczny Value Object.
No i mamy Time slot.
Tak jak w hotelu mieliśmy date range, tak tutaj mamy Time Slot,
który ma też start i end.
Repozytoria analogicznie do wyciągania różnych elementów i
budowania naszych agregatów.
No i przejdźmy do encji.
Mamy encje Facility, czyli nasza hala sportowa, która będzie miała jakąś nazwę
będzie typem, bo to może być lodowisko.
Załóżmy, że to jest takie sportowe.
Taki sportowy obiekt, który można wykorzystać i ma tutaj typ i
indywidualny identyfikator Facility ID.
No i mamy naszego klienta, który rezerwuje.
Naszym agregatem będzie tutaj rezerwacja, która bardzo przypomina tę
rezerwację, którą mieliśmy w hotelu.
Przyjmuje jakiś obiekt, tam mieliśmy pokój, przyjmuje sobie klienta, przyjmuje
slot no i ma jakieś statusy, więc statusy można też zmieniać.
Rezerwacja będzie się zmieniała.
Tak samo tutaj możemy dodawać jakąś logikę biznesową w związku ze zmianą
statusów czy zmianą np. time slotu.
Mamy Sport Hall Service, który dotyczy będzie nam tutaj pomagał
rezerwować sobie halę sportową.
Więc wyciągamy z repozytorium nową halę sportową klienta, tworzymy rezerwacje i
zapisujemy tam rezerwacja już rezerwacje.
Ten serwis będzie tutaj pilnował tej logiki tak aby nasz agregator Reserved
Action został zbudowany w spójnym stanie.
Dokładnie ten sam wzorzec co w hotelu zastosowany w innej domenie, w oparciu o
te same elementy, te same wzorce taktyczne.
Widzisz, jak wielka jest używalności elastyczność podejścia Domain Driven
Design w modelowaniu logiki biznesowej wielu różnych domen, wielu różnych domen.
Przeszliśmy przez kilka przykładów z różnych domen i jak widzisz, te same
wzorce wszędzie znalazły zastosowanie.
Na tym polega właśnie siła Domain Driven Design w architekturze oprogramowania.