Zrozumienie biznesu to klucz do sukcesu programisty
1 godz. 30 min · Full-stack i Programowanie
Rafał PiekaraSoftware KomandosZgłębimy podstawy Domain Driven Design, skupiając się na zrozumieniu, czym jest domena i jakie role pełnią subdomeny w rozumieniu biznesu i projektowaniu oprogramowania. Dowiesz się, jak identyfikować i definiować domenę oraz subdomeny w kontekście biznesowym, co jest kluczowe dla efektywnego modelowania i implementacji systemów.
Skoncentrujemy się na jednym z kluczowych aspektów Domain Driven Design - definiowaniu granic kontekstów (Bounded Contexts). Nauczysz się, jak precyzyjnie wyznaczać te granice, co pozwala na lepszą separację i integrację różnych części systemu. Omówimy, jak wyznaczone granicę wpływają na jasność komunikacji w zespole oraz jak ułatwiają zrozumienie modelu biznesowego.
Spojrzymy na strategiczne wzorce DDD, skupiając się na kluczowych konceptach takich jak Subdomena i Bounded Context. Zrozumienie i umiejętność ich identyfikacji w strukturach biznesowych to podstawowa umiejętność w projektowaniu domenowym. Nie pominiemy też tematów pobocznych jak kontekst schizofreniczny czy Prawo Conwaya. Każdy z tych elementów pomoże Ci lepiej zrozumieć zastosowanie Domain Driven Design w praktyce.
Wzorce taktyczne są fundamentalne dla praktycznego modelowania i implementacji oprogramowania. O ile wzorce strategiczne wyrażają koncepcję, to wzorce taktyczne dotykają, tego, co kochają programiści i programistki czyli kodu. Zobaczysz jak i po co je stosować i jak mogą wspomagać spójność oraz transakcyjność danych.
Wszystko fajnie z tym DDD, ale jak to poukładać? Na to też znalazło się miejsce w kursie. Cały moduł poświęcimy na zapoznanie się z przykładową strukturą, organizacją plików i folderów aplikacji opartej o Domain Driven Design. Nie musisz się już zastanawiać, gdzie upchnąć Twoje klasy. Wszystko stanie się przejrzyste, intuicyjne i oczywiste.
Kurs powstał z myślą o programistach, architektach, liderach technicznych, a także ludziach biznesu, którzy potrzebują pogłębić swoją wiedzę o projektowaniu oprogramowania skoncentrowanego na domenie biznesowej. Niezależnie od tego, czy jesteś na początku drogi z DD, czy masz już trochę doświadczenia i chcesz usystematyzować lub odświeżyć wiedzę - ten kurs jest dla Ciebie!
Omówimy teraz rozkład jazdy, czyli wszystkie składowe tego kursu i
poszczególne rozdziały, w których będziemy poznawać programowanie sterowane
dziedziną, czyli Domain Driven Design.
Będę cały czas powtarzał tę nazwę Domain Driven Design i
programowanie sterowane dziedziną, bo w zależności jakie materiały później
będziesz przerabiać, to spotkasz.
Te dwa określenia to polskie takie bardziej
piękne, staropolskie i to angielskie domain driven design lub skrót DDD.
Rozkład jazdy wygląda następująco.
W pierwszej kolejności skupimy się na zagadnieniu domeny, czyli kluczowym
zagadnieniu Domain Driven Design. Co to jest domena?
Jak się definiuje domenę?
Skąd w ogóle się bierze domena?
Gdzie szukać granic domeny i wszystkie tego typu rzeczy poznamy właśnie w
pierwszym rozdziale poświęconym domenie.
Następnie przejdziemy do tzw.
wzorców strategicznych w ogóle.
W Domain Driven Design rozróżniamy dwa rodzaje wzorców.
Pierwsze to są właśnie wzorce strategiczne, takie bardziej abstrakcyjne,
ogólne zasady, które stosujemy dzieląc kod bardziej wysoko poziomowy.
Czyli to są te ogólne zasady.
W Domain Driven Design i w następnym rozdziale mamy wzorce taktyczne, wzorce
bardziej praktyczne, już polegające na konkretnej implementacji założeń.
I tutaj już będziemy pracować nad kodem.
Będziemy patrzeć na przykłady wyrażone w kodzie w językach, o których mówiłem
we wcześniejszej lekcji wprowadzenia.
Więc mamy wzorce strategiczne, wzorce taktyczne.
Warto zapamiętać te dwie grupy, bo to się będzie przewijało cały czas i to się
bardzo często przewija też w literaturze branżowej poświęconej DDD.
Następnie porozmawiamy sobie o strukturze aplikacji Domain Driven Design jako
metodologia nie narzuca żadnej konkretnej struktury kodu ani aplikacji,
natomiast doświadczenie i praktyka Rzesza architektów i programistów
wypracowała pewne dobre praktyki i wzorce, o których Ci po prostu opowiem i
przedstawię te najpopularniejsze sposoby.
Strukturyzowanych aplikacji, struktur rysowania, katalogów,
kodu, klas w aplikacji.
Żeby wykorzystanie Domain Driven Design było jak najłatwiejsze i
przynosiło jak największe korzyści.
No i na koniec porozmawiamy sobie o testowaniu kości.
Podejście Domain Driven Design jest oryginalne, jeśli chodzi o konstruowanie
powiązań między klasami i będzie też miało swoje przełożenie na to, w jaki sposób
testujemy kod, w jaki sposób testujemy poszczególne warstwy i w jaki sposób
testowanie poszczególnych wzorców taktycznych wpływa na
pokrycie testami całego systemu.
Te 5 aspektów poruszymy w tym kursie poświęconym wprowadzeniu
do Domain Driven Design.