2017-02-01 42 views
4

Я хотел бы знать, если есть какая-то разница между:Различия между DDD и MDD

Domain Driven Design (DDD) Model Driven Design (MDD) Я всегда нахожу эти два термина во многих статьях и общественной литературы , но никто не подчеркивает различия.

+3

Возможный дубликат [Domain Driven Design vs Model Driven Architecture] (http://stackoverflow.com/questions/4166816/domain-driven-design-vs-model-driven-architecture) – plalx

+1

В то же время нет действительно хорошие ответы там ... –

+0

Я читаю книгу «Domain Driven Design». В книге автор использует DDD и MDD взаимозаменяемо, поэтому я думаю, что они - одно и то же? – shintaroid

ответ

-1

Два подхода к дизайну очень похожи. Проверить эту ссылку StackOverflow некоторые большие, подробные ответы на эту тему:

Domain Driven Design vs Model Driven Architecture

Суммируя ответы в ссылке, оба подхода сосредоточиться на моделировании точно проблему до разработки решения. В целом, DDD считается более абстрактным, без специально предложенных технологий или инструментов проектирования. MDD/MDA рассматривается более конкретно, с предложениями использовать UML для проектных работ.

+0

Downvoter, не могли бы вы объяснить, что вам не нравится, так что ответы на вопрос могут быть улучшены? –

+0

Я не занимался ниспроверкой, но распространенная практика заключается в том, чтобы отмечать вопрос как повторяющийся, а не отвечать на другой вопрос. – plalx

+0

Спасибо, plalx!Это определенно похоже на дубликат, но у меня нет комментариев, чтобы комментировать или отмечать вопросы :) –

3

Я лично нахожу MDA и DDD довольно далеко друг от друга.

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

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

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

В DDD есть много тактических паттернов, таких как совокупный корень, объект, объект ценности, хранилище и фабрика. Но их главная цель - дать разработчикам некоторые инструменты для создания правильных абстракций, которые могут инкапсулировать знания домена без ущерба для читаемости кода.

Важнейшая часть DDD - это стратегические шаблоны, такие как ограниченный контекст, контекстная карта и вездесущий язык. Если вы не используете это - у вас нет DDD. И это не имеет значения, какие обозначения вы используете для рисования диаграмм (некоторые просто используют липкие заметки), это совершенно вторично.