Domain-driven design

Z Wikipedii, wolnej encyklopedii
Przejdź do nawigacji Przejdź do wyszukiwania

Domain-driven design (projektowanie zorientowane na dziedzinę, skrót DDD) – podejście do tworzenia oprogramowania kładące nacisk na takie definiowanie komponentów systemu (modułów, obiektów, struktur danych), ich relacji i zachowań, aby możliwie wiernie odzwierciedlały dziedzinę problemu modelowanego przez wytwarzane oprogramowanie. Dopiero po utworzeniu takiego modelu domenowego należy rozważyć zagadnienia związane z techniczną realizacją oprogramowania.

Istotną rolę w domain-driven design odgrywają eksperci domenowi - osoby, które dobrze znają specyfikę problemu (np. księgowy w przypadku oprogramowania wspierającego księgowość). Eksperci domenowi nie muszą znać się na projektowaniu systemów informatycznych, ale rozumieją procesy biznesowe i problemy które oprogramowanie ma rozwiązać. Eksperci domenowi służą programistom jako źródło wiedzy o dziedzinie problemu, by programiści mogli zamodelować problem w sposób zgodny z tym, jak ten problem jest rozumiany przez osoby korzystające z wytworzonego oprogramowania. Domain-driven design zaleca, aby programiści tworząc kod oprogramowania posługiwali się wszechobecnym językiem (ang. ubiquitous language), czyli nazywali komponenty programu, ich relacje i zachowania w sposób zgodny z tym, jak te komponenty, relacje i zachowania są nazywane i rozumiane przez ekspertów domenowych do opisu procesów biznesowych.

W opinii zwolenników domain-driven design takie podejście pomaga zminimalizować rozbieżności między modelowanymi procesami biznesowymi a strukturą wytworzonego oprogramowania, ułatwiając wzajemne zrozumienie między wytwórcami oprogramowania a jego użytkownikami. Stosowanie domain-driven design ma też ułatwiać wprowadzanie zmian w odpowiedzi na zmieniające się wymagania biznesowe i zmniejszać koszt tych zmian, zwłaszcza w oprogramowaniu modelującym skomplikowane procesy biznesowe.

Domain-driven design zaleca stosowanie określonych wzorców projektowych i architektonicznych.

Twórcą terminu domain-driven design jest Eric Evans, autor pierwszej książki na ten temat: Domain-Driven Design: Tackling Complexity in the Heart of Software.

Linki zewnętrzne[edytuj | edytuj kod]