Показаны сообщения с ярлыком ddd. Показать все сообщения

Заменяем QueryFactory на бестелесный IQueryFactory

В статье Проблемный шаблон 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: создание домена

Одна из составляющих успешного приложения - это создание домена, который наиболее точно подходит к сценариями использования системы.

Бесплатная диагностика ситуации для вас и вашего бизнеса. Напишите нам в телеграмм и мы решим ваш вопрос.