Я кое-что читал о разработке, управляемой доменом, но не вижу, как это действительно изменит какие-либо методы разработки, кроме, возможно, сохранения наших имен объектов домена в синхронизации с элементами в наших документах требований.
Для тех, кто действительно увлекается DDD, как это изменило вашу практику разработки?
2 ответа
Что я обнаружил в DDD, так это то, что он просто дает названия концепциям и принципам, которые я уже использовал. Чтобы быть полезным, он не должен изменять способ разработки систем, он может просто предоставить нам терминологию для обсуждения нашего подхода.
Несколько вещей, которые изменились для меня после того, как я быстро прочитал Domain Driven Design Quick:
Теперь я определяю совокупные корни, сущности и типы значений.
Я использовал шаблон репозитория вместе с nHibernate для реализации уровня сохраняемости. (Это потому, что мне кажется, что этот ORM хорошо подходит для реализации границ агрегатов)
Я приветствую использование повсеместного языка, на который вы уклоняетесь (вероятно, самое важное изменение, которое я сделал).
Помимо этого, DDD просто формализовал то, что я считал здравым смыслом.
Не совсем ответ на ваш вопрос, но ...
Вы упустили ключевой момент: человек / команда создали контент для ваших документов с требованиями. Но как они пришли к выводам, содержащимся в этом документе? Представляют ли они факты или просто свое понимание проблемного пространства. Возможно ли, что части документа неверны? Или требования изменились с момента создания документа?
Дело в том, что DDD срабатывает до , как вы начинаете писать код. Эрик Эванс не утверждал, что DDD - надежный способ написания кода; DDD - это надежный способ определить бизнес-проблему и внести ясность в людей, участвующих в процессе. Реализационная часть вторична.
Если вы находитесь в положении, когда кто-то другой создает точные требования, а вы кодируете решение, тогда отлично. Но если вы находитесь в положении, когда вы должны понимать требования (и вы не эксперт в области бизнеса), то основная суть DDD < em> может изменить ваш подход.
Похожие вопросы
Новые вопросы
.net
НЕ используйте для вопросов о .NET Core - используйте вместо этого [.net-core]. .NET Framework - это программная среда, предназначенная главным образом для операционной системы Microsoft Windows. Он включает в себя реализацию библиотеки базовых классов, общеязыковой среды выполнения (обычно называемой CLR), общей системы типов (обычно называемой CTS) и динамической среды исполнения. Он поддерживает множество языков программирования, включая C #, VB.NET, F # и C ++ / CLI.