Что такое дизайн, управляемый доменом?
Итак, я получил этот вопрос от одного из разработчиков в моей команде: что такое проект, управляемый доменом? Я мог бы, конечно, указать на книгу от Эванса, но на самом деле это ответ?
Как вы объясните DDD в нескольких предложениях младшим разработчикам программного обеспечения в своей команде?
Ответы
Ответ 1
Я бы сказал, что эта практика способствует концентрации ваших усилий на "проблемном пространстве", а не на "пространстве решений". Вождение развивающегося решения (дизайн), изучая и действительно узнавая и понимая домен. Один из методов (взятых из XP) - это запись историй, которые происходят в проблемной области. Из них вы можете определить свои варианты использования и объекты для вашего дизайна. Они "появляются" и сообщают вам, что должно быть в решении, и как им нужно будет взаимодействовать друг с другом.
Ответ 2
В InfoQ есть бесплатная электронная книга:
Домен Driven Design быстро
Это хорошее чтение с большим количеством примеров.
Ответ 3
В процессе обнаружения "домена" вы формируете общий язык, который понимают как разработчики, так и все остальные заинтересованные стороны проекта.
Модель домена и его "лингво" вполне заметны в исходном коде для готового продукта. Это, по крайней мере, мой опыт.
Ответ 4
Важной частью DDD является так называемый вездесущий язык; т.е. говорить на том же языке, что и бизнес-эксперты. И сделайте свой код/архитектуру так, чтобы он отражал этот язык, чтобы избежать проблем с импедансом.
Ответ 5
Попытка понять, что такое программное обеспечение, о котором вы пишете, и отражать это понимание в модели.
Ответ 6
Domain Driven Design - это управление сложностью приложения в модели домена, где его легче всего перегонять.
Очень сложно описать в нескольких предложениях, но я бы рекомендовал книгу InfoQ как хорошее введение. Я также слышал о том, что многие люди занимаются книжным клубом с помощью книги DDD от Evans, которая очень помогла понять ее.
Ответ 7
Для меня это следующий уровень OOD/OOP, где инкапсуляция - все о проблемном пространстве, как описано и понято пользователями, и не столько о технической реализации.
Ответ 8
Прочитайте " Введение в проект, управляемый доменом" для быстрого, но подробного ознакомления с DDD