Запитання з тегом «domain-driven-design»

Дизайн, керований доменом (DDD) - це підхід до розробки програмного забезпечення для складних потреб шляхом підключення реалізації до моделі, що розвивається.

4
Де нам слід поставити валідацію доменної моделі
Я все ще шукаю найкращу практику для перевірки доменної моделі. Це добре, щоб включити перевірку в конструктор доменної моделі? приклад перевірки моделі мого домену наступним чином: public class Order { private readonly List<OrderLine> _lineItems; public virtual Customer Customer { get; private set; } public virtual DateTime OrderDate { get; private …

7
Чи прагнуть API RESTful заохочувати анемічні моделі домену?
Я працюю над проектом, в якому ми намагаємось застосувати як орієнтований на домен дизайн, так і REST до архітектури, орієнтованої на сервіс. Ми не турбуємось про 100% відповідність REST; можливо, було б краще сказати, що ми намагаємося побудувати орієнтовані на ресурси HTTP API (~ рівень 2 моделі зрілості Річардсона REST). …

1
Чому база даних як черга така погана? [зачинено]
Я щойно прочитав цю статтю , і я розгублений. Уявімо собі 1 веб-сервер та 1 окрему програму, яка виступає "працівником", які мають спільну базу даних . О, я сказав "ділитися" .. але про що попереджає стаття? : По-четверте, обмін базою даних між додатками (або послугами) - погана річ. Просто надто …

10
Використання GUID як первинного ключа
Зазвичай я використовую ідентифікатори автоматичного збільшення як основні ключі в базах даних. Я намагаюся дізнатися переваги використання GUID. Я прочитав цю статтю: https://betterexplained.com/articles/the-quick-guide-to-guids/ Я усвідомлюю, що ці GUID використовуються для ідентифікації об'єктів на рівні програми. Чи вони також зберігаються як первинний ключ на рівні бази даних. Наприклад, скажіть, у мене …

3
Репозиторії DDD у службі додатків чи доменів
Я сьогодні вивчаю DDD, і у мене виникають питання щодо управління репозиторіями з DDD. Насправді я зустрів дві можливості: Перший Перший спосіб управління послугами, які я прочитав, - це вставити сховище та модель домену в службу додатків. Таким чином, в одному з методів обслуговування додатків ми називаємо метод обслуговування домену …

5
Чи є хорошою практикою використання об'єктів сутності як об'єктів передачі даних?
Мені цікаво, тому що якщо так, то чому Entity Framework не пропонує логіки створити новий об'єкт із тими ж властивостями для передачі даних між шарами? Я використовую об'єкти сутності, які генерую за допомогою сутності.

2
Чи вважається тест підрозділу крихким, якщо він не працює, коли змінюється бізнес-логіка?
Будь ласка, дивіться код нижче; вона перевіряє, чи може людина, яка має стать жінки, має право на пропозицію1: [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)); } Цей одиничний …

1
Як вибрати між використанням події домену або дозволити шару додатків оркеструвати все
Я встановлюю свої перші кроки в розробці доменного дизайну, купую блакитну книгу і все, і я бачу три способи втілення певного рішення. Для запису: я не використовую CQRS або Sourcing подій. Скажімо, запит користувача надходить у рівень обслуговування додатків. Бізнес-логіка для цього запиту (з будь-якої причини) розділена на метод на …

2
DDD - Чи обробляє агрегатор кореневого сховища збереження агрегатів?
Я використовую DDD-подібний підхід для greenfield модуля існуючої програми; це не 100% DDD завдяки архітектурі, але я намагаюся використовувати деякі поняття DDD. У мене обмежений контекст (я думаю, що це правильний термін - я все ще вчуся про DDD), що складається з двох об'єктів: Conversationі Message. Бесіда - це корень, …

4
У DDD чи є логіка програми перевірки чи логіка домену?
Припустимо, ми моделюємо форму за допомогою DDD; Форма може мати певні правила ведення бізнесу, пов’язані з нею - можливо, вам потрібно буде вказати дохід, якщо ви не студент, і вам потрібно вказати своїх дітей, якщо ви вкажете, що ви одружені. І якщо ви вказали країну, то вона повинна мати дійсну …

3
Що таке розробка на основі домену на практиці? [зачинено]
Закрито . Це питання має бути більш зосередженим . Наразі відповіді не приймаються. Хочете вдосконалити це питання? Оновіть питання, щоб воно зосередило увагу на одній проблемі, лише відредагувавши цю публікацію . Закрито 3 роки тому . Я чув про розробку доменів, розроблену в цьому районі. Він говорив про це так, …

5
Як API REST підходить для домену на основі команд / дій?
У цій статті автор стверджує, що Іноді потрібно виявити операцію в API, яка по суті не є RESTful. і це Якщо API має занадто багато дій, то це свідчить про те, що або він був розроблений з точки зору RPC, а не з використанням принципів RESTful, або що відповідний API, …

2
Найкращі практики серіалізації агрегатів DDD
Відповідно до логіки домену DDD не слід забруднюватись такими технічними проблемами, як серіалізація, об'єктно-реляційне відображення тощо. Тож як ви серіалізуєте або картографуєте стан агрегатів, не публікуючи їх через геттери та сетери? Я бачив чимало прикладів, наприклад, реалізацій репозиторію, але практично всі вони покладалися на публічні аксесуари для об'єктів та цінні …

5
Тестування приладів у світі "без сетера"
Я не вважаю себе експертом DDD, але, як архітектор рішення, намагаюся застосовувати кращі практики, коли це можливо. Я знаю, що існує багато дискусій навколо плюсів і мінусів не (публічного) сеттерського "стилю" в DDD, і я можу побачити обидві сторони аргументу. Моя проблема полягає в тому, що я працюю в команді …

2
Дизайн, керований доменом - зовнішні залежності в проблемі Entity
Я хотів би запустити дизайн, керований доменом, але є кілька проблем, які я хотів би вирішити перед початком :) Давайте уявимо, що у мене є групи та користувачі, і коли користувач хоче приєднатися до групи, я викликаю groupsService.AddUserToGroup(group, user)метод. У DDD я повинен зробити group.JoinUser(user), що виглядає досить непогано. Проблема …

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.