Какую архитектурную ошибку вы допускали чаще всего за карьеру — и как теперь, зная DDD и Clean Architecture, спроектировали бы то же самое иначе?
Чаще всего я наступал на одни и те же грабли: размывал границы между слоями и позволял бизнес-логике просачиваться туда, где ей не место — в контроллеры, в обработчики событий, иногда даже в хранимые процедуры.
На короткой дистанции это ускоряло разработку, но каждое изменение требования потом превращалось в поиск логики по всему проекту.
Сейчас, применяя предметно-ориентированное проектирование (Domain-Driven Design) и чистую архитектуру (Clean Architecture), я закладываю границы контекстов (bounded contexts) и явные интерфейсы между слоями с самого начала — даже если проект выглядит небольшим.
Это кажется избыточным в начале проекта, но именно оно спасает через полгода, когда в проекте появляется третий разработчик и вторая интеграция.
Если бы я мог вернуться и переделать свои ранние проекты, я бы в первую очередь навёл порядок именно на границах — между доменом, инфраструктурой и обработкой запросов.
мысли