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.
Nadal szukam sprawdzonych metod sprawdzania poprawności modelu domeny. Czy dobrze jest umieścić walidację w konstruktorze modelu domeny? mój przykład sprawdzania poprawności modelu domeny w następujący sposób: public class Order { private readonly List<OrderLine> _lineItems; public virtual Customer Customer { get; private set; } public virtual DateTime OrderDate { get; private …
Pracuję nad projektem, w którym staramy się zastosować zarówno projektowanie oparte na domenie, jak i REST do architektury zorientowanej na usługi. Nie martwimy się o 100% zgodność z REST; prawdopodobnie lepiej byłoby powiedzieć, że próbujemy budować API HTTP zorientowane na zasoby (~ Poziom 2 modelu dojrzałości REST Richardsona). Niemniej jednak …
Właśnie przeczytałem ten artykuł i jestem zdezorientowany. Wyobraźmy sobie 1 aplikację internetową i 1 odrębną aplikację działającą jako „pracownik”, obie współużytkujące tę samą bazę danych . Och, powiedziałem „dzielenie się” .. ale o czym ostrzega ten artykuł? : Po czwarte, współdzielenie bazy danych między aplikacjami (lub usługami) jest złą rzeczą. …
Generalnie używam identyfikatorów automatycznego przyrostu jako kluczy podstawowych w bazach danych. Próbuję poznać zalety korzystania z GUID. Przeczytałem ten artykuł: https://betterexplained.com/articles/the-quick-guide-to-guids/ Zdaję sobie sprawę, że te identyfikatory GUID są używane do identyfikacji obiektów na poziomie aplikacji. Czy są one również przechowywane jako klucz podstawowy na poziomie bazy danych. Powiedzmy, że …
Obecnie studiuję DDD i mam pytania dotyczące zarządzania repozytoriami za pomocą DDD. Właściwie spotkałem dwie możliwości: Pierwszy Pierwszym sposobem zarządzania usługami, które przeczytałem, jest wstrzyknięcie repozytorium i modelu domeny do usługi aplikacji. W ten sposób, w jednej z metod usługi aplikacji, wywołujemy metodę usługi domeny (sprawdzanie reguł biznesowych), a jeśli …
Zastanawiam się, ponieważ jeśli tak, to dlaczego Entity Framework nie oferuje logiki tworzenia nowego obiektu o tych samych właściwościach do przesyłania danych między warstwami? Korzystam z obiektów encji, które generuję za pomocą frameworku encji.
Proszę zobaczyć kod poniżej; sprawdza, czy osoba z płcią żeńską kwalifikuje się do oferty1: [Fact] public void ReturnsFalseWhenGivenAPersonWithAGenderOfFemale() { var personId = Guid.NewGuid(); var gender = "F"; var person = new Person(personId, gender); var id = Guid.NewGuid(); var offer1 = new Offer1(id,"Offer1"); Assert.False(offer1.IsEligible(person)); } Ten test jednostkowy się powiódł. Jednak …
Swoje pierwsze kroki stawiam na projektowanie oparte na domenie, kupiłem niebieską książkę i wszystko inne, i widzę trzy sposoby na wdrożenie określonego rozwiązania. Dla przypomnienia: nie używam CQRS ani Event Sourcing. Załóżmy, że żądanie użytkownika wchodzi do warstwy usługi aplikacji. Logika biznesowa dla tego żądania jest (z dowolnego powodu) podzielona …
Używam podejścia podobnego do DDD dla modułu greenfield istniejącej aplikacji; nie jest to 100% DDD ze względu na architekturę, ale staram się użyć niektórych koncepcji DDD. Mam ograniczony kontekst (myślę, że to właściwy termin - wciąż uczę się o DDD) składający się z dwóch jednostek: Conversationi Message. Rozmowa jest korzeniem, …
Załóżmy, że modelujemy formularz za pomocą DDD; formularz może wiązać się z pewnymi regułami biznesowymi - być może będziesz musiał określić dochód, jeśli nie jesteś studentem, i musisz podać swoje dzieci, jeśli wykażesz, że jesteś w związku małżeńskim. A jeśli podałeś kraj, powinien on mieć prawidłowy kraj. Czy tego rodzaju …
Zamknięte . To pytanie musi być bardziej skoncentrowane . Obecnie nie przyjmuje odpowiedzi. Chcesz poprawić to pytanie? Zaktualizuj pytanie, aby skupiało się tylko na jednym problemie, edytując ten post . Zamknięte 3 lata temu . Dowiedziałem się o rozwoju opartym na domenie od dewelopera z tego obszaru. Mówił to tak, …
W tym artykule autor twierdzi, że Czasami wymagane jest ujawnienie operacji w interfejsie API, która z natury nie jest w stanie RESTful. i to Jeśli interfejs API ma zbyt wiele działań, oznacza to, że albo został zaprojektowany z punktu widzenia RPC, a nie z wykorzystaniem zasad RESTful, lub że dany …
Zgodnie z logiką domeny DDD nie należy zanieczyszczać problemami technicznymi, takimi jak serializacja, mapowanie obiektowo-relacyjne itp. Jak więc serializować lub mapować stan agregatów bez publicznego ujawniania go za pomocą metod pobierających i ustawiających? Widziałem wiele przykładów np. Implementacji repozytoriów, ale praktycznie wszystkie polegały na publicznych akcesoriach na obiektach i obiektach …
Nie uważam się za eksperta DDD, ale jako architekt rozwiązań staram się stosować najlepsze praktyki, gdy tylko jest to możliwe. Wiem, że wokół DDD jest wiele dyskusji na temat przeciwników i przeciwników „stylu” setera no (publicznego) i widzę obie strony argumentu. Mój problem polega na tym, że pracuję w zespole …
Chciałbym rozpocząć projektowanie oparte na domenie, ale jest kilka problemów, które chciałbym rozwiązać przed rozpoczęciem :) Wyobraźmy sobie, że mam grupy i użytkowników, a gdy użytkownik chce dołączyć do grupy, wywołuję groupsService.AddUserToGroup(group, user)metodę. W DDD powinienem to zrobić group.JoinUser(user), co wygląda całkiem nieźle. Problem pojawia się, jeśli istnieją pewne reguły …
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.