Господа архиткеторы, можете на пальцах в двух словах обьяснить отличие между ДДД и чистой архитектурой? Это подходы к решению одной и той же проблемы или это разные вообще парафии? и что лучше использовать? и вообще можно ли их сравнивать? И насколько я знаю ДДД вышел раньше чем clean arch, значит ли что он более "устаревший"? Заранее спасибо.
"чистая архитектура" она про направления зависимостей и направлена больше на уменьшение вероятности появления каскада изменений. Для того что бы архитектура была чистой тебе нужен минимальный уровень представления откуда требования берутся (анализ потока изменений требований), иначе невозможно соблюдать все эти SRP и open/close. Но в целом именно ответа на вопрос "а как именно чего дробить" помимо слоев и инверсии зависимостей оно тебе не дает.
DDD это уже более абстрактная штука. Фактически если говорить о DDD как о методологии большинство сводят это дело к способам моделировать домен и выделять bounded contexts и поддомены. Для больших продуктов все это важно так как bounded context оч красиво ложатся на потоки изменений требований и удобны для декомпозиции продукта на кучу дев команд и вот это все. Соответственно с оптимальными границами контекстов, выделением зависимостей, вводом терминологии внутри контекста и как это все мэпится друг на дружку у тебя появляется та самая модель предметной области. Ну и вот весь процесс формирования и постоянного рефайна этой модели укладывается в DDD.
Связь с кодом тут разве что за счет conway's law