Рубрики
Uncategorized

Концепция доменного дизайна объяснила

Использование микросервисов означает создание приложений от свободно сцепления. Приложение Coursi … Помечено микросервисами, DevOps, WebDev, архитектурой.

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

Микросервисы — это модель дизайна архитектуры с Конкретный ограниченный контекст, конфигурация и зависимости. Это результат в результате архитектурных принципов дизайна и DEVOP. Дизайн, управляемый доменом — это идея решения задач организации через код.

Цель бизнеса важен для бизнес-пользователей, с Очистить интерфейс и функции. Таким образом, микросервис может работать независимо от других микросервисов. Более того, команда также может работать над ней самостоятельно, которая на самом деле является точкой архитектуры микросервиса.

Многие разработчики утверждают, что микросервисы сделали их более эффективными. Это связано с возможностью работать в небольших командах. Это позволяет им разрабатывать различные мелкие детали, которые позже будут объединены как большое приложение.

Они проводят меньше времени координации с другими разработчиками и большем времени на разработку фактического кода. В конце концов, это создает больше ценности для конечного пользователя.

Сложность — это относительный срок. Какой комплекс для одного человека прост для другого. Тем не менее, Сложность — это проблема, которую должен решить дизайн, управляемый доменом. В этом контексте сложность означает взаимосвязь, множество различных источников данных, разные бизнес-цели и т. Д.

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

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

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

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

В DDD важно обратить внимание на следующие условия:

Логика домена

Логика домена — цель вашего моделирования. Чаще всего он называется Бизнес логика Отказ Именно здесь ваши бизнес-правила определяют способ создания данных, сохраненных и измененных данных.

Доменная модель

Модель домена включает в себя Идеи, знания, данные, метрики и цели Это вращается вокруг этой проблемы, которую вы пытаетесь решить. Он содержит все правила и шаблоны, которые помогут вам иметь дело с сложной бизнес-логикой. Более того, они будут полезны для удовлетворения требований вашего бизнеса.

Поддонов

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

Шаблоны проектирования

Конструктивные модели все о Reusing код Отказ Независимо от сложности проблемы, которую вы столкнулись, кто-то, кто делает объектно-ориентированное программирование, вероятно, уже создал шаблон, который поможет вам решить ее. Разбиение вашей проблемы в его первоначальные элементы приведет вас к своему решению. Все, что вы изучаете через шаблоны, вы можете позже использовать для любого объектно-ориентированного языка, в котором вы начинаете программировать.

Ограниченный контекст

Ограниченный контекст — это Центральный узор В доменном дизайне, который содержит сложность приложения. Он обрабатывает большие модели и команды. Это где вы реализуете код, после определения Домен и поддомены Отказ

Ограниченные контексты на самом деле представляют границы, в которых определен определенный поддомен и применимо. Здесь конкретный поддомен имеет смысл, в то время как другие не. Одна сущность может иметь разные имена в разных контекстах. Когда поддомен в пределах ограниченных контекста меняется, вся система тоже не должна меняться. Вот почему разработчики используют адаптеры между контекстами.

Вездесущий язык

Курсивальный язык — это методология, которая относится к Те же языковые домена эксперты и разработчики используют Когда они говорят о домене, над которыми они работают. Это необходимо, потому что проекты могут столкнуться с серьезными проблемами с нарушенным языком. Это происходит, потому что эксперты домена используют свой собственный жаргон. В то же время технологичные специалисты используют свои собственные условия, чтобы поговорить о домене.

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

Объекты

Сущности — это сочетание Данные и поведение , как пользователь или продукт. У них есть личность, но представляет точки данных с поведением.

Значение объектов и агрегатов

Значение объектов имеет атрибуты , но не может существовать самостоятельно. Например, адрес доставки может быть объектом стоимости. Большие и сложные системы имеют бесчисленные объекты и объекты ценности. Вот почему модель домена нуждается в какой-то структуре. Это приведет их к логическим группам, которые будут легче управлять. Эти группы называются Агрегаты Отказ Они представляют собой коллекцию объектов, связанных друг с другом, с целью лечения их в качестве единиц. Более того, у них также есть Совокупный корню Отказ Это единственное лицо, которое может ссылаться любой объект за пределами совокупности.

Служба домена

Доменная служба — Дополнительный слой, который также содержит логику домена. Это часть модели домена, как и объекты объектов и ценность. В то же время служба приложений является еще одним слоем, который не содержит бизнес-логику. Однако здесь, чтобы координировать активность приложения, размещенного над моделью домена.

Репозиторий

Узор репозитория — это Коллекция деловых организаций Это упрощает инфраструктуру данных. Он выпускает модель домена от проблем инфраструктуры. Усложняя концепция обеспечивает разделение опасений.

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

Итак, пользовательское приложение будет состоять из следующих слоев:

Пользовательский интерфейс

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

Слой приложения

Этот слой не содержит бизнес-логику. Это часть, которую приводит пользователя от одного на другой экран пользовательского интерфейса. Он также взаимодействует с накладными слоями других систем. Он может выполнять простую проверку, но он не содержит логику, связанную с доменом или доступом к данным. Его цель — организовать и делегировать доменные объекты, чтобы выполнить свою работу. Более того, это единственный слой, доступный для других ограниченных контекстов.

Доменный слой

Это где Концепции бизнес-домена — Отказ Этот слой имеет всю информацию о бизнес и бизнес-правилах. Вот и где Предприятия являются. Как мы упоминали ранее, объекты являются сочетанием данных и поведения, как пользователь или продукт.

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

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

Эта часть также содержит услуги с Определенное оперативное поведение Это не должно быть частью любого домена. Однако они все еще являются частью бизнес-домена. Услуги названы в соответствии с повсеместным языком. Они не должны лишать организаций и ценность объектов их четкой подотчетности и действий. Клиенты должны быть в состоянии использовать любой данный экземпляр обслуживания. История этого случая в течение жизни приложения не должна быть проблемой.

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

Слой инфраструктуры

Этот слой поддерживает Связь между другими слоями и может содержать вспомогательные библиотеки для слоя пользовательского интерфейса.

  • Проще общения. Благодаря вездесущему языку, связь между разработчиками и командами становится намного проще. Поскольку вездесущий язык может содержать более простые термины, разработчики относятся к, нет необходимости в сложных технических терминах.
  • Больше гибкости. Поскольку DDD ориентирован на объектно-ориентированные, все в домене основано, и объект является модульной и клеткой. Благодаря этому, вся система может быть изменена и улучшена регулярно.
  • Домен идет перед ui/ux. Поскольку домен является центральной концепцией, разработчики будут создавать приложения, подходящие для конкретного домена. Это не будет другим ориентированным на интерфейс приложение. Хотя вы не должны оставлять UX, используя подход DDD означает, что продукт ориентирован на именно пользователей, которые напрямую подключены к домену.
  • Требуется глубокое знание домена. Даже для самых технологически продвинутых команд, работающих над разработкой, должен быть хотя бы один специалист по домену в команде, которая понимает точные характеристики субъекта, которая является центром приложения. Иногда есть необходимость в нескольких членах команды, которые полностью знают домен, чтобы включить в команду разработки.
  • Содержит повторяющиеся практики. Хотя многие скажут, что это преимущество, дизайн, управляемый доменом, содержит много повторяющихся практик. DDD поощряет использование Непрерывная интеграция Чтобы построить сильные приложения, которые могут адаптироваться при необходимости. Многие организации могут иметь трудности с этими методами. Более конкретно, если их предыдущий опыт обычно привязан к менее гибким моделям роста, таких как модель водопада.
  • Это может не работать лучше всего для высокотехнических проектов. Дизайн, управляемый доменом идеально подходит для приложений, которые имеют сложную бизнес-логику. Однако это не может быть наилучшим решением для приложений с незначительной сложностью домена, но высокой технической сложности. Приложения с большой технической сложностью могут быть очень сложными для экспертов, ориентированных на бизнес домена. Это может привести к многим ограничениям, которые могут не быть разрешены для всех членов команды.

Дизайн, управляемый доменом — это подход для разработки программного обеспечения для решения конкретной модели домена. Решение круги вокруг бизнес-модели Подключив выполнение к ключевым бизнес-принципам.

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

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

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

Оригинал: «https://dev.to/microtica/the-concept-of-domain-driven-design-explained-1ccn»