Я работала с Node.js семь лет. Видела, как команды переезжали с Express на Nest, потом на Fastify, потом обратно. Каждый раз — уверения что «вот теперь всё правильно».

Ни разу не было.

Случай первый: NestJS как «правильный» путь

В 2022 году NestJS казался спасением. TypeScript из коробки, DI-контейнер, модульность — красота. Проблема: новый разработчик на проекте потратил три дня только чтобы понять, где устроен роутинг. Декораторы, модули, провайдеры — каждая сущность требовала отдельного файла и контекста.

Затраты на поддержание «правильной» архитектуры со временем превысили стоимость написания бизнес-логики.

Случай второй: микросервисы ради микросервисов

Команда из четырёх человек. Проект — интернет-магазин. Решили: «микросервисы — это масштабируемо». Два сервиса, RabbitMQ, отдельный API-шлюз, Docker-compose для локальной разработки.

Через полгода один из разработчиков уволился. Оставшиеся три человека тратили 40% времени на поддержание инфраструктуры вместо фич. При этом нагрузка магазина не превышала 500 уников в день.

Случай третий: строгая типизация как религиозный догмат

TypeScript с full strict mode. Хорошо? Отлично. Но команда потратила неделю чтобы написать DTO для простой формы обратной связи. Потому что «any — это зло», а значит нужен тип для каждого поля, вложенный интерфейс для ошибок валидации, enum для статусов.

Простая задача — три дня согласований типов.

Что я поняла

opinionated инструменты хороши для больших команд с устоявшимися процессами. Для малого бизнеса и indie-проектов они часто создают больше работы чем решают.

Прагматичный подход: Express + минимальный набор библиотек решает 80% задач. Оставшиеся 20% — повод подумать, действительно ли они стоят сложности.