Oceniając potencjalny projekt w pracy, zasugerowałem, że może być korzystne zastosowanie podejścia projektowego opartego na domenie do modelu obiektowego. Projekt nie ma nadmiernie złożonej domeny, więc mój współpracownik rzucił mi to:
Powiedziano, że DDD jest korzystny w przypadkach, gdy istnieje złożony model domeny („... Ma zastosowanie, gdy działamy w złożonej, skomplikowanej domenie” Eric Evans).
Zgubiłem się - jak zdefiniować złożoność domeny? Czy można to zdefiniować na podstawie liczby zagregowanych korzeni w modelu domeny? Czy złożoność domeny w interakcji obiektów?
Domena, którą oceniamy, jest powiązana z publikowaniem online i zarządzaniem treścią.
complexity
domain-driven-design
Eliasz
źródło
źródło
Odpowiedzi:
Najważniejszym czynnikiem jest złożoność logiki biznesowej, zwanej także zachowaniem aplikacji. Drugim najważniejszym czynnikiem jest to, jak duża jest luka między problemem technicznym a słownikiem biznesowym używanym do opisu tego problemu, ponieważ DDD polega na tworzeniu wspólnego słownictwa między biznesem a zespołem inżynierów.
Niektóre wzorce stosowane w DDD są ogólnie przydatne w architekturze aplikacji korporacyjnych, takie jak wzorzec repozytorium, ograniczony kontekst i architektura warstwowa. To, że używasz tych wzorców, nie oznacza, że zajmujesz się projektowaniem opartym na domenie.
Jeśli nie ma zbyt wielu zachowań, co oznacza, że przeważnie przechowujesz dane, a nie działasz na nich, budowanie tej warstwy domeny może mieć znacznie mniejszą wartość. Jeśli w zarządzaniu treścią wszystko, co robisz, to zatwierdzasz i publikujesz, być może może to być reprezentowane przez flagi w systemie, a nie metody domeny. Ale kiedy zaczniesz dodawać dodatkowe zachowanie, właściwość warstwy z pełną domeną stanie się bardziej widoczna.
Jeśli mówimy o zarządzaniu treścią, oto kilka (wymyślonych) reguł, które mogą zacząć wskazywać na potrzebę DDD:
źródło