Projektowanie zorientowane na domeny (DDD) to podejście do tworzenia oprogramowania o złożonych potrzebach poprzez połączenie wdrożenia z ewoluującym modelem.
Od dłuższego czasu dostosowuję CQRS 1 dla biedaka, ponieważ uwielbiam jego elastyczność polegającą na posiadaniu szczegółowych danych w jednym magazynie danych, zapewniając duże możliwości analizy, a tym samym zwiększając wartość biznesową, aw razie potrzeby inny dla odczytów zawierających dane zdormalizowane w celu zwiększenia wydajności . Ale niestety właściwie od samego …
Ostatnio czytałem wiele artykułów opisujących prymitywną obsesję jako zapach kodu. Są dwie zalety unikania prymitywnej obsesji: Sprawia, że model domeny jest bardziej wyraźny. Na przykład mogę porozmawiać z analitykiem biznesowym na temat kodu pocztowego zamiast ciągu zawierającego kod pocztowy. Cała walidacja odbywa się w jednym miejscu zamiast w całej aplikacji. …
Po korzystaniu z Hibernacji w większości moich projektów przez około 8 lat, znalazłem się w firmie, która zniechęca do jego używania i chce, aby aplikacje współdziałały z bazą danych tylko za pomocą procedur przechowywanych. Po zrobieniu tego przez kilka tygodni nie byłem w stanie stworzyć bogatego modelu domenowego aplikacji, którą …
Próbuję zaprojektować aplikację, która ma złożoną domenę biznesową i wymaga obsługi interfejsu API REST (nie tylko REST, ale zorientowana na zasoby). Mam problem z wynalezieniem modelu domeny w sposób zorientowany na zasoby. W DDD klienci modelu domeny muszą przejść przez warstwę procedur „Application Services”, aby uzyskać dostęp do dowolnej funkcji …
Anemiczne modelu domeny jest opisany jako anty-wzorzec w domenie napędzane projektu Martin Fowler. Aby mieć logikę biznesową w modelach domen, często używa się usług domenowych. Ale wprowadzanie usług domenowych do modeli domen jest uważane za szkodliwe przez Vaughna Vernona (patrz „Wdrażanie projektowania opartego na domenie, Strona 387). Moim zdaniem opinie …
W wielu podejściach do tworzenia oprogramowania, takich jak metodyki zwinne, projektowanie oparte na domenie oraz analiza i projektowanie zorientowane obiektowo, zachęcamy do stosowania jednego iteracyjnego podejścia do programowania. Dlatego nie powinniśmy robić naszego modelu domeny poprawnie przy pierwszym uruchomieniu projektu. W miarę upływu czasu zmieniamy model, ponieważ z czasem lepiej …
W jaki sposób wzorzec używania programów obsługi poleceń do radzenia sobie z trwałością pasuje do czysto funkcjonalnego języka, w którym chcemy, aby kod związany z IO był jak najcieńszy? Podczas implementowania projektowania opartego na domenie w języku obiektowym często stosuje się wzorzec polecenia / procedury obsługi do wykonywania zmian stanu. …
Rozważ system, który używa DDD (a także: każdy system, który używa ORM). Realistycznym celem każdego systemu, w prawie każdym przypadku użycia, będzie manipulowanie tymi obiektami domeny. W przeciwnym razie nie będzie prawdziwego efektu ani celu. Modyfikacja niezmiennego obiektu spowoduje, że wygeneruje on nowy rekord po utrwaleniu obiektu, co spowoduje ogromne …
Na przykład, gdy przesyłasz formularz Rejestru, musisz sprawdzić Domain Model( WriteModelin CQRS), czy jest on w poprawnym stanie (na przykład składnia adresu e-mail, wiek itp.). Następnie tworzysz Commandi wysyłasz do Command Bus. Rozumiem, że polecenia nie powinny niczego zwracać. Jak więc poradzić sobie z błędem wykraczającym poza Command Bus? (Na …
Usiłuję skonfigurować strukturę mojej aplikacji w VS i chcę „wypróbować” i w przyszłości udowodnić to na rozsądnym poziomie. Ta aplikacja będzie przepisem WPF starej aplikacji Winform, która nie przestrzegała żadnych konwencji. Bez warstw, poziomów, akronimów itp. Jest to dość duża aplikacja dla przedsiębiorstw. Planowałem użyć Linq To SQL, ponieważ moje …
Natknąłem się na przemówienie Grega Younga 7 powodów, dla których projekty DDD zawiodły, kiedy wspomina coś, co nazywa DDD-Lite o 7:20. Podsumowując, w zasadzie mówi, że niektórzy używają DDD jako języków wzorcowych (bytów, repozytoriów, obiektów wartości, usług itp.) Bez robienia czegokolwiek innego związanego z DDD. Postuluje, że 60% lub więcej …
Niedawno czytam Wzorce integracji przedsiębiorstw Hohpe i Woolf, niektóre książki Thomasa Erla na temat SOA oraz oglądam różne filmy i podcasty Udi Dahana i in. w systemach CQRS i systemach sterowanych zdarzeniami. Systemy w moim miejscu pracy cierpią z powodu wysokiego sprzężenia. Chociaż teoretycznie każdy system ma własną bazę danych, …
Szukam sposobu zaprojektowania aplikacji ddd z konwencją nad konfiguracją. Powiedz, że zagregowany „Klient” ma zdefiniowaną komendę „FillProfile”. Logicznie wywoła zdarzenie „ProfileFilled”. Czy zdarzają się przypadki, gdy polecenie wywoła więcej niż zdarzenie lub gdy polecenie wywoła inne zdarzenia w oparciu o jakąś logikę? Czy jest to zawsze relacja 1 - 1 …
Pracowałem w stosunkowo złożonej aplikacji z dziesięcioma tabelami bazy danych (agregaty, jednostki / obiekty wartości) i stosuję DDD. W tym momencie wydaje się, że jest to w zasadzie DDD-Lite, co oznacza, że istnieją Usługi aplikacji / domen, Model domeny (Encje, Obiekty wartości) i Repozytoria. Wziąłem książkę Implementowanie DDD, a pierwszą …
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, …
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.