модели предметной области, выраженной на языке специалистов в этой области. Модель
предметной области может рассматриваться как каркас, на основании которого будут
реализовываться решения.
Для применения DDD необходимо четко понимать предметную область, которую
предполагается моделировать, или иметь способности для овладения такими знаниями. При
создании модели предметной области группа разработки нередко работает в сотрудничестве
со специалистами в данной области. Архитекторы, разработчики и специалисты в
рассматриваемой области обладают разной подготовкой и во многих ситуациях будут
использовать разные языки для описания своих целей, желаний и требований. Однако в
рамках DDD вся группа договаривается использовать только один язык, ориентированный на
предметную область и исключающий все технические жаргонизмы.
В качестве ядра ПО выступает модель предметной области, которая является прямой
проекцией этого общего языка; с ее помощью путем анализа языка группа быстро находит
пробелы в ПО. Создание общего языка это не просто упражнение по получению сведений от
специалистов и их применению. Довольно часто в группах возникают проблемы с обменом
информацией не только по причине непонимания языка предметной области, но также и из-за
неопределенности языка самого по себе. Процесс DDD имеет целью не только реализацию
используемого языка, но также улучшение и уточнение языка предметной области. Это, в свою
очередь, положительно отражается на создаваемом ПО, поскольку модель является прямой
проекцией языка предметной области.
Чтобы сделать модель строгой и полезной языковой конструкцией, как правило, приходится
интенсивно использовать изоляцию и инкапсуляцию в рамках модели предметной области.
Это может обусловить относительную дороговизну системы, основанной на DDD. Несмотря на
то, что DDD обеспечивает массу преимуществ с технической точки зрения, таких как удобство в
обслуживании, эта схема должна применяться лишь для сложных предметных областей, для
которых процессы моделирования и лингвистического анализа обеспечивают безусловные
преимущества при обмене сложной для понимания информацией и формулировании общего
видения предметной области.
Основными преимуществами стиля DDD являются:
Обмен информацией. Все участники группы разработки могут использовать модель
предметной области и описываемые ею сущности для передачи сведений и
требований предметной области с помощью общего языка предметной области, не
прибегая к техническому жаргону.
Расширяемость. Модель предметной области часто является модульной и гибкой, что
упрощает обновление и расширение при изменении условий и требований.
Удобство тестирования. Объекты модели предметной области характеризуются слабой
связанностью и высокой связность, что облегчает их тестирование.
Рассмотрите возможности применения DDD при работе со сложной предметной областью,
если хотите улучшить процессы обмена информацией и ее понимания группой разработки,
или если необходимо представить проект приложения на общем языке, понятном всем