Uczę się o projektowaniu opartym na domenie, ale są pewne praktyczne problemy, które są dla mnie mylące, że myślę, że zobaczenie dobrych próbek może wyjaśnić.
Czy ktoś zna jakieś dobre działające próbki kodu, które dobrze wykonują modelowanie podstawowych koncepcji DDD?
Szczególnie zainteresowany
- Przykładowy model domeny
- Repozytoria
- Korzystanie z usług domenowych / aplikacyjnych
- Obiekty wartości
- Łączne korzenie
domain-driven-design
jlembke
źródło
źródło
Odpowiedzi:
Trudność z próbkami DDD polega na tym, że często są one bardzo specyficzne dla domeny, a techniczna implementacja wynikowego systemu nie zawsze pokazuje decyzje projektowe i przejścia dokonane podczas modelowania domeny, która tak naprawdę jest rdzeniem DDD. W DDD chodzi o proces bardziej niż o kod. (jak niektórzy twierdzą, najlepszą próbką DDD jest sama książka!)
To powiedziawszy, dobrze skomentowana przykładowa aplikacja powinna przynajmniej ujawnić niektóre z tych decyzji i dać ci kierunek w zakresie dopasowania modelu domeny do wzorców technicznych zastosowanych do jego wdrożenia.
Nie określiłeś, którego języka używasz, ale dam ci kilka w kilku różnych językach:
DDDSample - próbka Java, która odzwierciedla przykłady, o których mówi Eric Evans w swojej książce . Jest to dobrze skomentowane i pokazuje wiele różnych metod rozwiązywania różnych problemów z oddzielnymi ograniczonymi kontekstami (tj. Warstwą prezentacji). Nad tym aktywnie pracujemy, więc regularnie sprawdzaj dostępność aktualizacji.
dddps - przykładowa aplikacja C # Tima McCarthy'ego do jego książki, .NET-Driven Design with C #
Architektura S # arp - pragmatyczny przykład w języku C #, nie jako „czyste” podejście DDD, być może z powodu braku prawdziwego problemu z domeną, ale wciąż ładne czyste podejście.
W przypadku wszystkich tych przykładowych aplikacji prawdopodobnie najlepiej jest sprawdzić najnowsze wersje łącza SVN / cokolwiek, aby naprawdę zorientować się w myśleniu i wzorcach technologicznych, ponieważ powinny one być regularnie aktualizowane.
źródło
dddps
wydaje się być całkowicie anemiczny i faktycznie przeciwny OOP. Żaden z obiektów domeny nie zachowuje się, a klasy warstw usług są w zasadzie delegacją 1: 1 do repozytoriów. Nie jestem pewien, czy należy to uznać za „dobry” przykład DDD? Wciąż się uczę, ale przykłady w architekturze S # arp wydają się być lepszym przykładem dla osób uczących się DDD, ponieważ obejmują zarówno stan, jak i zachowanie, co jest dobrym projektem OOP.Nie źródłowe projekty na powiedzenie, ale natknąłem się na Parleys.com, który ma kilka dobrych filmów, które dość dobrze obejmują DDD (wymaga Flasha):
Uważam, że są one o wiele bardziej pomocne niż prawie nieistniejące przykłady DDD, które są obecnie dostępne.
źródło
Próbkę .NET DDD z książki opartej na domenie autorstwa Erica Evansa można znaleźć tutaj: http://dddsamplenet.codeplex.com
Twoje zdrowie,
Jakub G.
źródło
Sprawdź projekt Silk . Pokazuje nie tylko DDD, ale także inne najnowocześniejsze wzory. To doskonały zasób dla każdego programisty. Pełny przegląd projektu można znaleźć na MSDN .
źródło
Jest to dobry przykład oparty na projektach opartych na domenie i wyjaśnia, dlaczego ważne jest, aby mieć oddzielną warstwę domeny.
Microsoft hiszpania - DDD N Layer Architecture
źródło
Dobrym źródłem jest również ddd-cqrs-sample . Napisane w Javie, Spring i JPA.
Zaktualizowany link: https://github.com/BottegaIT/ddd-leaven-v2
źródło
Code Camp Server , przykładowy kod Jeffrey Palermo dla książki ASP.NET MVC w akcji . Chociaż książka koncentruje się na warstwie prezentacji, aplikacja jest modelowana za pomocą DDD.
źródło