Не соглашайтесь с большинством вышеперечисленных, хотя, возможно, стоит немного расширить.
Единственная самая важная концепция в DDD - сосредоточиться на проблемной области. Отложить технологическую одержимость в сторону и сконцентрироваться в первую очередь на моделировании проблемы, которую вы пытаетесь решить. Поэтому поместите ajax, ORM, базы данных, фреймворки и т. Д. В фоновый режим и вместо этого убедитесь, что у вас есть полная и точная модель проблемы в первую очередь. (Конечно, вам все еще нужны архитектурные компоненты - но они явно подчинены модели). DDD называет это «вездесущим языком» - модель, выраженная в терминах, которые используют и понимают как эксперты в области предметной области, так и разработчики. Модель, в которой имена классов, методов и т. Д. Взяты из проблемной области.
DDD не предписывает / как / вы фиксируете эту модель, хотя книга подразумевает использование языка OO для этого.
MDA разделяет ту же концепцию моделирования проблемной области в первую очередь (PIM, Платформо-независимая модель). В отличие от DDD, он рекомендует создавать эту модель с UML. Но цель та же: понять проблемную область, не затрагивая ее (программные) архитектурные проблемы.
PSA (модель для платформы) MDA в некоторой степени аналогична применению архитектурных шаблонов в DDD (например, агрегат, репозиторий и т. Д.). Опять же - хотя они и различаются по специфике - оба стремятся решить проблему преобразования «чистой» модели предметной области в полноценную программную систему.
Подводя итог, я бы сказал, что они похожи в двух отношениях:
- Центральность модели (как говорит @Rui), в частности / Domain / model.
- Применение архитектурных моделей к модели для реализации целевой системы.
НТН.