Pytania otagowane jako domain-driven-design

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.

3
DDD: Gdzie umieścić procedury obsługi zdarzeń domeny?
Czy możesz mi powiedzieć, że która warstwa jest odpowiednia do umieszczenia modułów obsługi zdarzeń domeny w DDD? Na przykład mam usługę aplikacji, aby dodać nową umowę i chciałbym wysłać powiadomienie e-mail do osoby kontaktowej, gdy umowa zostanie dodana, podobnie jak ta usługa nadawcy wiadomości e-mail (która obsługuje zdarzenie ContractAdded) lub …

2
Czy w usłudze DDD usługa domenowa jest w zasadzie tylko wzorem fasady i / lub mediatora?
W projektowaniu opartym na domenach warstwa domeny może mieć kilka (tradycyjnych) usług. Na przykład w domenie użytkownika możemy mieć: UserFactory, który buduje obiekty użytkownika na różne sposoby UserRepository, które jest odpowiedzialne za interakcję z usługami przetrwania w warstwie infrastruktury Czy usługa użytkownika w warstwie domen jest po prostu mediatorem i …

2
Czy izolacja domeny / modelu trwałości jest zwykle tak niewygodna?
Zagłębiam się w koncepcje projektowania opartego na domenach (DDD) i odkryłem, że niektóre zasady są dziwne, szczególnie w odniesieniu do izolacji domeny i modelu trwałości. Oto moje podstawowe zrozumienie: Usługa w warstwie aplikacji (udostępniająca zestaw funkcji) żąda obiektów domeny z repozytorium, której potrzebuje do wykonywania swojej funkcji. Konkretna implementacja tego …

6
DDD spełnia OOP: jak zaimplementować repozytorium obiektowe?
Typowa implementacja repozytorium DDD nie wygląda zbyt dobrze, na przykład save()metoda: package com.example.domain; public class Product { /* public attributes for brevity */ public String name; public Double price; } public interface ProductRepo { void save(Product product); } Część infrastruktury: package com.example.infrastructure; // imports... public class JdbcProductRepo implements ProductRepo { …

2
Jak faktycznie dowiedzieć się, co należy zrobić w projektowaniu obiektowym?
Najpierw zastrzeżenie: Naprawdę nie wiem, czy to pytanie pasuje do tej witryny, ale nadal uważam to za istotne pytanie nie tylko dla mnie, ale dla innych osób, które są początkujące. Jeśli pytanie można poprawić, aby pasowało tutaj, proszę zaznaczyć int komentarze. Jeśli to nie pasuje, daj mi również znać, a …

2
Czy obiekty ignorujące trwałość są w stanie zaimplementować opóźnione ładowanie?
Trwałość Ignorancja jest zastosowaniem zasady pojedynczej odpowiedzialności, co w praktyce oznacza, że ​​Obiekty Domeny ( DO ) nie powinny zawierać kodu związanego z trwałością, a jedynie logikę domeny. a) Zakładam, że oznacza to, że kod, który kontaktuje się z niższymi warstwami (tj. warstwami trwałości), żyje poza modelem domeny w innych …

2
Jak przybliżyć ten projekt do właściwego DDD?
Czytałem o DDD od kilku dni i potrzebuję pomocy w tym przykładowym projekcie. Wszystkie reguły DDD powodują, że jestem bardzo zdezorientowany tym, jak mam cokolwiek zbudować, gdy obiekty domeny nie mogą pokazywać metod w warstwie aplikacji; gdzie jeszcze koordynować zachowanie? Repozytoria nie mogą być wstrzykiwane do podmiotów, a same podmioty …

4
Unikanie rozdętych obiektów domenowych
Próbujemy przenieść dane z naszej rozdętej warstwy usługi do naszej warstwy domeny przy użyciu metody DDD. Obecnie w naszych usługach jest dużo logiki biznesowej, która jest rozrzucona po całym miejscu i nie korzysta z dziedziczenia. Mamy centralną klasę domen, która jest przedmiotem większości naszej pracy - handel. Obiekt Trade będzie …

5
Jeśli wzorzec repozytorium jest nadmierny dla współczesnych ORM (EF, nHibernate), co jest lepszą abstrakcją?
Niedawno przeczytałem wiele argumentów przeciwko używaniu wzorca repozytorium z potężnymi mechanizmami ORM, takimi jak Entity Framework, ponieważ zawiera on funkcje podobne do repozytorium, a także funkcjonalność jednostki pracy. Kolejnym argumentem przeciwko używaniu wzorca do sytuacji takiej jak testowanie jednostkowe jest to, że wzorzec repozytorium jest nieszczelną abstrakcją, ponieważ bardziej ogólne …

2
Pozyskiwanie zdarzeń CQRS +: (czy to prawda, że) Polecenia są zazwyczaj przekazywane punkt-punkt, podczas gdy zdarzenia domeny są przekazywane przez pub / sub?
Zasadniczo próbuję owinąć głowę koncepcją CQRS i powiązanymi koncepcjami. Chociaż CQRS niekoniecznie obejmuje przesyłanie wiadomości i pozyskiwanie zdarzeń, wydaje się być dobrą kombinacją (co można zobaczyć w wielu przykładach / postach na blogu łączących te pojęcia) Biorąc pod uwagę przypadek użycia dla zmiany stanu czegoś (powiedzmy, aby zaktualizować Pytanie na …

2
Wyjątki w DDD
Uczę się DDD i myślę o rzucaniu wyjątków w określonych sytuacjach. Rozumiem, że obiekt nie może wejść w zły stan, więc tutaj wyjątki są w porządku, ale w wielu przykładach wyjątki są zgłaszane na przykład, jeśli próbujemy dodać nowego użytkownika z istniejącą pocztą e-mail w bazie danych. public function doIt(UserData …

5
Pułapki projektowania opartego na domenach dzięki Entity Framework
Wiele tutoriali na temat DDD, które studiowałem, dotyczy głównie teorii. Wszystkie mają podstawowe przykłady kodu (Pluralsight i podobne). W Internecie próbuje się również kilka osób, aby stworzyć samouczki dotyczące DDD z EF. Jeśli zaczniesz je studiować krótko - szybko zauważysz, że bardzo się od siebie różnią. Niektóre osoby zalecają, aby …


1
Jak należy obsługiwać polecenia Dodaj / Utwórz * w architekturze CQRS + Event Sourcing
Chcę wdrożyć moją pierwszą aplikację przy użyciu wzorca CQRS wraz z Event Sourcing. Zastanawiam się, jak prawidłowo obsługiwać tworzenie zagregowanych korzeni. Powiedzmy, że ktoś wysyła polecenie CreateItem. Jak sobie z tym poradzić? Gdzie należy przechowywać zdarzenie ItemCreated? Jako pierwsze wydarzenie nowego przedmiotu? Czy powinienem mieć jakiś element ItemList, który agreguje …

1
Projektowanie modułowej aplikacji serwisowej
Zastanawiam się nad stworzeniem nowego rozwiązania, które z natury jest bardzo modułowe i chciałbym stworzyć strukturę obsługującą ten projekt, aby umożliwić łatwą rozbudowę w przyszłości, wyraźne rozdzielenie problemów, licencjonowanie według modułów itp. Większość tego, co mam znalezione w Internecie informacje o aplikacjach modułowych lub złożonych są zorientowane na interfejs użytkownika, …

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.