Что такое DDD?

Стандартно процесс разработки программного приложения можно представить в виде 3 колец. Движение в них направлено к предметной области, к Domain.

Порядок действий: • Разрабатываем сервис; • Придумываем, как он будет выглядеть; • Решаем, для какой области данный сервис будет реализован.

Разработка любого программного обеспечения похожа на строительство дома. Мы - как разработчики бизнес-приложений, схожи со строителями.

Архитекторы, подобно инженерам в строительстве, подготавливают проект – проектируют чертеж, накидывают, что и как должно быть, выбирают материалы, место, готовят инструменты, собирают команду. Отличие в том, что мы сидим за компьютером, а они нет. Строители, как и мы, могут результат с разных сторон.

• Например, если мы представим чертеж в неправильном масштабе, то вместо складского помещения у нас получится гараж. • Если мы добавим на чертеж окна, будет частный дом.

Казалось бы, все начинается с чертежа, но нет – все начинается с вопросов: • Для чего это здание? • Как мы будем его использовать? • Будет ли там что-то храниться?

DDD помогает ответить на вопрос: «Для чего это сделано?». Domain-Driven Design - предметно-ориентированное проектирование. Прежде чем что-то проектировать, мы должны знать, для какой предметной области мы это делаем. Только в этом случае можно правильно подобрать конфигурацию для конкретного бизнеса.

@sergeikuzmin