Czym jest DDD?
Przeczytaj czym jest DDD w naszym słowniku.
Pomoże Ci to lepiej zrozumieć, czym dokładnie jest DDD i jakie ma dla Ciebie znaczenie w codziennym użytkowaniu.

DDD
DDD (Domain-Driven Design) to podejście do tworzenia oprogramowania, w którym centrum uwagi stanowi domena biznesowa oraz jej logika. W praktyce polega ono na ścisłej współpracy programistów i ekspertów dziedzinowych, aby budować rozwiązania precyzyjnie odzwierciedlające potrzeby biznesu. Dzięki temu kod staje się bardziej czytelny, a cały projekt zyskuje na elastyczności i łatwiejszym rozwoju. Koncepcję DDD zaproponował Eric Evans w swojej książce „Domain-Driven Design: Tackling Complexity in the Heart of Software” opublikowanej w 2004 roku.
DDD sprawdza się najlepiej w złożonych przedsięwzięciach, gdzie istnieje wiele złożonych reguł biznesowych. W prostych witrynach czy aplikacjach o nieskomplikowanej logice, takie podejście może być nadmiarowe.
Główne elementy DDD
1. Ubiquitous Language (wszechobecny język)
Zespół projektowy ustala spójne słownictwo opisujące logikę biznesową i stosuje je konsekwentnie zarówno w dokumentacji, jak i w kodzie.
2. Model domeny
Model to uproszczona, ale dokładna reprezentacja rzeczywistości biznesowej, wyrażona za pomocą klas, obiektów i relacji między nimi.
3. Bounded Context (ograniczony kontekst)
W dużych systemach mogą występować różne modele tej samej rzeczywistości. Każdy model działa w swoim „kontekście” – niezależnym od innych części systemu. Granice te są jasno określone i respektowane.
4. Encje i obiekty wartości (Entities & Value Objects)
- Encje (Entities) mają unikalną tożsamość i mogą się zmieniać w czasie.
- Obiekty wartości (Value Objects) są definiowane przez swoje atrybuty i są niemutowalne.
5. Agregaty (Aggregates)
Agregat to grupa obiektów powiązanych logicznie, z których jeden pełni rolę głównej encji (tzw. root). Zapewnia spójność wewnętrzną i ogranicza zasięg modyfikacji.
6. Repozytoria
Repozytoria odpowiadają za dostęp do encji – oddzielają logikę biznesową od sposobu przechowywania danych.
Zalety stosowania DDD
Lepsze odwzorowanie potrzeb biznesowych w systemie
Zrozumiały kod – dzięki wspólnemu językowi
Wysoka elastyczność i możliwość rozwoju systemu
Lepsza współpraca między programistami a ekspertami dziedzinowymi
Silna separacja odpowiedzialności w kodzie
Czy DDD wymaga specjalnej infrastruktury?
Technicznie nie ma sztywnych wymagań co do hostingu, na którym działa aplikacja oparta na DDD. Natomiast jeżeli przewidujesz duże obciążenie, warto rozważyć serwery dedykowane lub skalowalne rozwiązania, takie jak serwer vps, szczególnie gdy projekt intensywnie się rozwija. Ważne jest też posiadanie odpowiedniej nazwy dla usługi, dlatego nie zapomnij o rejestracji domeny dopasowanej do profilu firmy.