С какими проблемами вы столкнулись при разработке на Nest.js?

«С какими проблемами вы столкнулись при разработке на Nest.js?» — вопрос из категории Софт-скиллы, который задают на 24% собеседований PHP Разработчик. Ниже — развёрнутый пример ответа, который можно адаптировать под свой опыт.

Ответ

В моем опыте работы с Nest.js были следующие сложности:

  1. Сложность внедрения зависимостей (DI) на старте. При неправильной настройке модулей контейнер не может разрешить зависимости. Я сталкивался с ошибками вида:

    // Nest can't resolve dependencies of the ServiceA (?).
    // Please make sure that the argument ServiceB at index [0] is available in the AppModule context.

    Решение — тщательно следить за тем, чтобы провайдеры были зарегистрированы в нужном модуле и область видимости (scope) была понятна.

  2. Интеграция с ORM. При использовании TypeORM в сочетании с миграциями иногда возникали конфликты, особенно при работе в команде, когда состояние базы данных у разработчиков расходилось.

  3. Тестирование. Мокирование сложных зависимостей, особенно кастомных провайдеров или сервисов, использующих декораторы (например, @InjectRepository()), требовало большего количества boilerplate-кода по сравнению с простым Express-приложением.

  4. Производительность. Из-за множества слоев абстракции (декораторы, интерсепторы, пайпы) некоторые эндпоинты, особенно с тяжелой бизнес-логикой, могли показывать более высокую latency. Это требовало дополнительного профилирования и оптимизации.