Когда принимаешь решение об уровнях абстракции в коде надо руководствоваться пользой и здравым смыслом. Нужно ли абстрагировать ORM-фрейворк? Нужно ли выделять сервисный уровень из контроллеров? Нужны ли юнит-тесты или достаточно интеграционных? На эти вопросы нельзя дать ответ в отрыве от контекста.

Очевидно, что в небольшом CRUD REST API совершенно не имеет смысла выстраивать архитектуру. Если проект будет разрастаться, то можно будет его порефакторить.

В большинстве стартапов идея требует проверки, и совершенно неочевидно, что продукт будет зарабатывать деньги в том виде, в котором он был изначально задуман. Можно начать писать приложение под Palm Pilot для разбивки общего счета за обед, а закончить платежной системой. Соответственно, нужна возможность быстро переписывать по полпроекта. Большая красивая DDD-based архитектура, опять же, совсем этому не способствует.

С другой стороны, если твоя процессинговая система десять лет на рынке, установлена в десятках банков, генерирует тонны денег и очередь на разработку стоит на пару лет вперед, то стоит почитать Эванса.

Show your support

Clapping shows how much you appreciated Краснояров Станислав’s story.