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!
Wiesz czym jest subdomena?
Teraz pora na przykłady, konkretne przykłady istnienia takich subdomen.
Przede wszystkim subdomena to takie różne działy w firmie.
Tak jak firma ma różne działy, ma księgowość, ma
kadry, ma też dział marketingu, tak.
Subdomeny to takie reprezentacje różnych działów w naszym systemie
i taki pojedynczy dział HR to będzie subdomena w obrębie większej domeny, np.
korporacji bankowej.
Więc subdomena to będzie taki konkretny obszar logiki lub domeny biznesowej
do oddzielnego modyfikowania, modelowania i zarządzania w izolacji.
Jest to bardziej konceptualny podział systemu niż bezpośrednie elementy kodu,
więc operujemy tutaj na bardzo wysokim poziomie abstrakcji.
I jeśli chodzi o praktyczne przykłady, to np.
w domenie ecommerce może być taka subdomena zarządzania produktami, która
będzie operować takimi rzeczami jak katalog, opisy, ceny i
dostępność produktów.
Może być też subdomena logistyki, która odpowiada za magazyn, zapasy, stan
magazynowy, wysyłki, zwroty, logistykę przesyłek.
W branży e-commerce, w branży HR w domenie HR możemy mieć
subdomenę rekrutacji, gdzie będziemy zarządzać ofertami pracy, zbieraniem
aplikacji, rozmów kwalifikacyjnych, wyboru kandydatów.
Może być subdomena zarządzania pracownikami, gdzie będzie zarządzanie
urlopami, umowami, oceny pracownicze, wydajność, rozwój zawodowy,
ścieżki kariery itd.
Subdomena płac to wynagrodzenia, świadczenia i podatki, więc mamy biznes,
aplikacja HR owa i mamy kilka subdomen zdefiniowanych i możemy
mieć też subdomenę np.
w domenie bankowości.
Może istnieć subdomena kont bankowych, gdzie będziemy mieć zarządzanie kontami,
otwieranie kont, obsługę salda, obsługę transakcji, subdomena kredytów
gdzie będzie udzielanie kredytów, oceny zdolności kredytowej, zarządzanie
umowami kredytowymi itd, itd.
Więc tak najprościej możemy ująć subdomena to będzie właśnie ten dział w obrębie
większej domeny, w obrębie większej branży, większej
działki biznesowej, której z kolei odpowiada system projektowany w obrębie
zasad związanych z wzorcami Domain Driven Design.