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!
Testowanie encji.
Co możemy testować przy okazji wykorzystywania encji w projekcie W.
Przede wszystkim, tak jak Value Object będziemy testować konstruktor i atrybuty,
więc sprawdzamy czy encja jest tworzona w spójnym stanie, czy zachodzą wszystkie
walidację, czy atrybuty są poprawnie przypisywane.
Będziemy mogli zmieniać stan encji i testować zmiany tego stanu, więc testujemy
po prostu implementację metod, sprawdzamy jak obiekt się zachowuje.
Możemy sprawdzić też równość naszych encji, czyli porównywanie ich za pomocą
identyfikatora i czy te metody porównania są prawidłowo zaimplementowane.
I na końcu po prostu testujemy zachowanie poprawne zachowanie encji i
cyklu życia jaki zachodzi.
I przejdźmy teraz do kodu.
Prosty test dla naszego usera, gdzie sprawdzamy czy
tworzy nam się prawidłowa encja użytkownika z podanymi nam parametrami.
Sprawdzamy czy zachowanie zmiana stanu zachodzi również poprawnie.
Czy tu wszystko dobrze działa?
No i sprawdzamy sobie porównywanie metody equals czy faktycznie dwa różne ID, ale z
różnymi atrybutami będą oznaczać ten sam obiekt.
Bardzo prosty test jak i encja jest bardzo prostym wzorcem, który stosujemy by
operować na unikalnych, unikalnych obiektach naszych systemie.
A te obiekty unikalne jeszcze raz powtórzę będą się różniły właśnie tym kluczem ID.