6 вопросов и ответов на собеседовании о доменно-ориентированном дизайне

Содержание:

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

6 вопросов о важном

Вопрос №1

Каковы цели и задачи доменно-предметного ориентирования?

Ответ

DDD предназначено для решения трех основных задач:

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

Вопрос №2

Каковы важные особенности доменно-ориентированного дизайна?

Ответ

Сценарий приложения на основе предметно-ориентированного проектирования предназначен для решения разного рода сложных бизнес-задач путем:

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

Вопрос №3

Каковы концепции модели?

Ответ

Концепции включают:

  • Контекст. Среда, в которой формируются слова или высказывания, определяющие значение контекста.
  • Домен. Область знаний, с которой должна разрабатываться программа.
  • Модель. Совокупность абстрактных образов, описывающих определенные аспекты домена и решающая, связанные с ним проблемы.
  • Язык. Используемое всеми членами группы средство связи между пользователем и ПО.

6 вопросов и ответов на собеседовании о доменно-ориентированном дизайне

Вопрос №4

Каковы основные стратегии предметно-ориентированного проектирования?

Ответ

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

  • Ограничение контекста. Необходимо четко определить контекст, в теле которого разрабатывается модель. Следует расставлять точки границ, окружающие пространство группы, не запутавшись при этом во внешних и внутренних проблемах.
  • Интеграция. Чем больше человек работают с моделью, тем сильнее фрагментация, поэтому при возникновении данной ситуации следует часто внедрять процесс слияния всего кода и других артефактов, использовать язык, вырабатывая общий взгляд на модель.
  • Контекстная карта. Персональный, узкоспециализированный контекст делает проблемным глобальное представление. Люди, взаимодействующие в модели, будут неосознанно вносить изменения, устраняя границы и усложняя взаимосвязи. Следует определить строго ограниченный контекст разрабатываемой модели.

Вопрос №5

Какие известные инструменты доменно-ориентированного дизайна вы знаете?

Ответ

На практике DDD не зависит от применения других программных инструментов. Однако в нашем блоге DevEducation часто рассматриваются вопросы о применении приложений, обеспечивающих поддержку определенного типа шаблонов. К самым распространенным из них относятся:

  • Адаптируемый для Eclipse модуль Actifsource, позволяющий разрабатывать ПО, сочетая его с DDD-проектированием путем генерации кода.
  • Семантический фреймворк CubicWeb, уточняющий модели данных, чтобы получить отлично функционирующее веб-приложение. Для адаптации необходима дополнительная настройка, предустановка системы по умолчанию недостаточна.
  • Открытый исходный код OpenMDX, созданный на платформе Java отличается тем, что применяет для работы модели, управляющие поведением опционных систем при выполнении задач.
  • OpenXava предназначено для разработки приложений AJAX. Для этого достаточно прописать классы области функционирования.
  • Restful Objects является стандартом Restful API для объекта предметной сферы. Обладает возможностью выступать в качестве сущности, модели представления и т.д.

Вопрос №6

Почему DDD не используется для всех без исключения проектов?

Ответ

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

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

Подводя итог, стоит сказать, что Domain-Driven Design – не универсальный, но довольно эффективный подход к разработке сложных проектов. При тщательно продуманном подходе, приложенные усилия обязательно оправдаются и дадут значительные преимущества бизнесу, в том числе, создадут адаптивную архитектуру бизнеса, учитывающую все его особенности. Единый язык сведет к нулю все временные затраты на исправление ошибок.

Присоединяйся к DevEducation — стань востребованным специалистом и построй карьеру в IT!