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