Często widzę ten termin w kontekście architektury oprogramowania („model domeny”, „projektowanie oparte na domenie” itp.). Znalazłem go w Google, ale dostaję mnóstwo różnych definicji. Więc co to tak naprawdę jest?
Gdzie wyznaczamy granicę między delegowaniem a enkapsulacją logiki biznesowej? Wydaje mi się, że im więcej delegujemy, tym bardziej stajemy się anemiczni . Delegacja promuje jednak również ponowne użycie i zasadę SUCHEGO. Co zatem należy przekazać i co powinno pozostać w naszych modelach domen? Weź jako przykład następujące obawy: Autoryzacja . …
Pracuję dla firmy, dla której domena jest naprawdę trudna do zrozumienia, ponieważ jest to zaawansowana technologia w elektronice, ale dotyczy to każdego oprogramowania tworzącego złożoną domenę. Aplikacja, nad którą pracuję, wyświetla wiele informacji, wykresów i wskaźników, które są trudne do zrozumienia bez doświadczenia w dziedzinie. Deweloper używa specyfikacji, aby opisać, …
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 …
Jakie argumenty powinien wziąć pod uwagę przy projektowaniu nowego systemu i musi przechowywać nazwisko osoby jako jedno pole lub osobno jako imię / nazwisko? Zalety pojedynczego pola: Prostszy interfejs użytkownika Bez dwuznaczności przy wpisywaniu nazwiska osoby, która ma bardzo długie imię (często nie jest oczywiste, jakie jest nazwisko / imię …
Ten post dotyczy szybko zmieniającego się wydarzenia. Modeluję bazę danych, która powinna być używana jako ogólny niefunkcjonalny wymóg dla wszystkich usług firmy startupowej, takich jak osoby, użytkownicy, usługi i dane handlowe, takie jak kupony, pakiety podpisów itp. Myślę o modelu płci . Czy w dzisiejszych czasach i przy różnych przepisach …
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. …
Załóżmy, że mamy system rejestrowania zadań. Gdy zadanie jest rejestrowane, użytkownik określa kategorię, a zadanie domyślnie ma status „Zaległy”. Załóżmy w tym przypadku, że kategorię i status należy zaimplementować jako byty. Normalnie zrobiłbym to: Warstwa aplikacji: public class TaskService { //... public void Add(Guid categoryId, string description) { var category …
Czytam o projektowaniu opartym na domenach od prawie dwóch lat i ostrożnie wprowadzam pewne koncepcje do mojej codziennej pracy lub przynajmniej planuję, jak rzeczy, które robię regularnie, mogą być wykonane w ramach projektu opartego na domenach. Jeden wniosek, do którego zacząłem dochodzić, szczególnie w odpowiedzi na więcej informacji o pozyskiwaniu …
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 …
Studiuję czystość, w wyniku czego dość radykalnie zastanawiam się nad tym, jak projektuję i piszę oprogramowanie. Wciąż mam problem z regułami biznesowymi, takimi jak: „przy zapisywaniu aktualizacji jakiegoś elementu, najpierw załaduj całą listę elementów, które mam uprawnienia do przeglądania / edycji itp., Potwierdź, że ten element jest na liście, oraz …
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 …
W naszej logice biznesowej czasami mamy zdefiniowane metody, takie jak to: User.ResetCourse(Course courseToReset) Problem polega na tym, że zarówno Użytkownik, jak i Kurs są obiektami proxy Entity Framework. Oznacza to, że kiedy trafimy na właściwości nawigacji użytkownika lub kursu, może to spowodować ogromne trafienie w bazie danych, ponieważ obiektów tych …
Krótki format pytania Czy w ramach najlepszych praktyk DDD i OOP jest wstrzykiwanie usług do wywołań metod encji? Przykład długiego formatu Załóżmy, że mamy w DDD klasyczny przypadek Line-LineItems, w którym mamy Encję Domenową o nazwie Zamówienie, która działa również jako Korzeń Agregacji, a Encja składa się nie tylko z …
Budujesz system, który śledzi firmy. Te firmy mają kontakty. Kontakty te są często specjalistami, którzy odpowiadają tylko na niektóre rodzaje pytań, takie jak fakturowanie / płatność, sprzedaż, zamówienia i obsługa klienta. Używając projektu opartego na domenie i architektury cebuli, modelowałem to z następującymi typami: Firma Ma kontakty Kontakt Ma typy …
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.