В статье Проблемный шаблон Repository и судя по комментариям многим не понравилась та часть, где объекты *Query скрываются за IQueryFactory. С первого взгляда кажется, что QueryFactory превращается в очередной god-object.
Domain-Driven Design: Продажа идеи
Несколько месяцев назад я консультировал IT-компанию. Компания разработала проект для завода и хотела сделать из проекта тиражируемый продукт на другие предприятия в этой отрасли. После получения второго заказа они столкнулись со сложностью внесения изменений и настройки проекта. Это не позволяло им легко сделать второе внедрение, не говоря уже про постановку таких внедрений на поток.
Учебный пример по DDD. Пример реализации
7 января 2012 г.
Почти год назад Сергей Соловьев в личной переписке по email спросил у меня, как лучше реализовать сценарий актуальный для него предметной области. Подробности в статье Учебный пример по DDD.
В комментариях шло обсуждение решения, но целый пример прислал только Степан Родионов. Его решение можно посмотреть на GitHub https://github.com/AlexanderByndyu/DDD-example-1
Если вы хотите предложить своё решение, то присылайте их в комментарии ссылками на исходный код или на свои блоги с описанием вашего подхода. Все примеры я обязательно посмотрю и напишу свои предложения по реализации. Давайте учится вместе!
Domain-Driven Design: Простые способы улучшить дизайн ПО
Недавно я проводил консультацию, в ходе которой заметил, что можно эффективно использовать несколько простых приемов для улучшения дизайна ПО. Несмотря на то, что приемы и правда простые, эффект получает очень сильным. Эти приемы давно известны и применяются в повседневной работе, особенно теми, кто уже использует Domain-Driven Design.
Проблемный шаблон Repository
Как уже обсуждалось в Domain-Driven Design: Repository, реализация шаблона Repository фактически превращается в статический класс (даже, если у него нет слова static) с большим количеством методов. Кроме этого возникает рад вопросов к реализации шаблона Repository, на которые нет простых ответов.
Учебный пример по DDD
Я сейчас занимаюсь написанием одного простого приложения для себя, хотелось бы следовать принципам DDD при его проектировании. Хотел бы привести сценарий использования из этого приложения, требующего более или менее нетривиальной бизнес-логики и задать тебе по нему несколько вопросов.
Domain-Driven Design: Repository
Суть шаблона подробно описана в статьях P of EAA Catalog: Repository и Domain-Driven Design Community: Repository. Шаблон Repository представляет собой фасад для доступа к данным. Repository реализует механизм для хранения, извлечения и поиска объектов в источнике данных.
Совершенный код №2. Пример реализации Unit Of Work с NHibernate
В комментариях и письмах к статье Совершенный код №2. Реализация Unit Of Work вы предложили довольно мало реализаций. Я опишу принципы своего видения реализации и учту ваши предложения и исправления к моему коду в предыдущих статьях.
Domain-Driven Design: aggregation root
Для создания удобного и полезного домена приложения нужно понимать, как использовать корень агрегации (aggregation root). Это понятие логическое и в коде явным образом нигде не прописываться. В разных пользовательских историях одна и так же сущность домена может быть корнем агрегации и может быть внутри агрегации. На нескольких примерах я покажу принцип работы и цели использования корня агрегации.
Скачать исходный код примеров (git, Visual Studio 2010)
Domain-Driven Design: создание домена
Одна из составляющих успешного приложения - это создание домена, который наиболее точно подходит к сценариями использования системы.
Бесплатная диагностика ситуации для вас и вашего бизнеса. Напишите нам в телеграмм и мы решим ваш вопрос.