Важность основного домена и почему важны поддомены

Более десяти лет назад я отправился в путешествие в захватывающий мир доменно-ориентированного проектирования (DDD). Раньше у меня даже была возможность написать об этом колонку для журнала VSOne. Я поделился своим практическим опытом и идеями разработки сложных бизнес-приложений с помощью C# .NET. Сегодня я возвращаюсь к этому увлечению, сосредоточившись на основных принципах DDD, начиная с самой базовой, но часто неправильно понимаемой концепции: «домена».

В этой статье вы узнаете, что означает «домен» в контексте DDD, как он структурирован и почему его понимание имеет решающее значение для успеха любого проекта DDD. Мы рассмотрим основные, вспомогательные и общие поддомены, используя в качестве иллюстративного примера простой книжный интернет-магазин. Поняв эти основы, вы будете лучше подготовлены к решению сложных бизнес-задач организованным и эффективным образом.

Что на самом деле означает «домен»?

Когда мы говорим о доменно-ориентированном проектировании (DDD), часто употребляют термин «домен». Но что это на самом деле означает? Если вы какое-то время занимаетесь разработкой программного обеспечения, вы, вероятно, слышали, как люди говорят о «домене», как будто это некая мистическая сущность, о которой должен знать каждый. Давайте проясним ситуацию и разберемся в сути того, что на самом деле означает «домен», особенно в контексте DDD.

Взгляд на домен с высоты птичьего полета

На высоком уровне домен — это, по сути, сфера, в которой работает организация. Это то, чем занимается бизнес, и среда, в которой он это делает. Подумайте об этом так: если вы управляете книжным интернет-магазином, ваша сфера деятельности предполагает продажу книг через Интернет. Просто, правда?

Но здесь нам нужно остановиться и убедиться, что мы не увлеклись. Часто люди слышат термин «модель предметной области» и предполагают, что мы должны создать грандиозную унифицированную модель, которая инкапсулирует каждый отдельный аспект организации. Это недоразумение. На самом деле, DDD не рекомендует этого делать.

Домены — сложные звери