Питання на співбесіді з NestJS (Senior) з відповідями

75 запитань для співбесіди з теми NestJS (Senior) - з правильними відповідями, поясненнями й посиланнями на документацію.

Пройти цей тест
  1. 1.Як Nest знає, що впровадити в constructor(private users: UsersService)?
  2. 2.Чому бандлер чи компілятор без підтримки метаданих декораторів може зламати Nest-застосунок?
  3. 3.Як DI-контейнер організований між модулями?
  4. 4.Провайдер з областю REQUEST впроваджено в сервіс-синглтон. Що станеться?
  5. 5.Для чого durable-провайдери?
  6. 6.Як впровадити поточний запит у провайдер і чого це коштує?
  7. 7.Як під час запуску знайти всі провайдери з власним декоратором, наприклад щоб автоматично зареєструвати обробники подій?
  8. 8.Як ConfigurableModuleBuilder допомагає писати перевикористовуваний динамічний модуль?
  9. 9.Чому forwardRef може приховати проблему дизайну, навіть якщо виправляє помилку?
  10. 10.Чому при циклічних залежностях впроваджене значення може бути undefined у конструкторі, але визначеним пізніше?
  11. 11.Де накладні витрати Nest зазвичай важливі, а де ні?
  12. 12.Чому серіалізація class-transformer може стати вузьким місцем для великих відповідей?
  13. 13.Як скоротити час холодного старту Nest-застосунку на serverless-платформах?
  14. 14.Чому в розробці на Nest часто використовують SWC?
  15. 15.До чого мають бути готові обробники в мікросервісах Nest на Kafka?
  16. 16.Чому «запит-відповідь» (client.send) між мікросервісами може бути ризикованим на масштабі?
  17. 17.Як надійно публікувати події з Nest-сервісу, що також пише в базу?
  18. 18.На що спирається транспорт gRPC у Nest?
  19. 19.Як передавати trace чи correlation ID між мікросервісами Nest?
  20. 20.Як структурувати велику кодову базу Nest, щоб межі лишалися чіткими?
  21. 21.Як виглядає гексагональна архітектура (ports and adapters) у Nest?
  22. 22.Коли @nestjs/cqrs окупається?
  23. 23.Як тримати транзакції узгодженими між кількома сервісами в одному запиті, не передаючи об'єкт транзакції всюди?
  24. 24.Як реалізувати в Nest мультитенантність з базою на кожного тенанта?
  25. 25.Чим ризиковано тримати логіку авторизації лише в guards?
  26. 26.Чому корисно мати однакові валідацію й авторизацію для HTTP, GraphQL і обробників повідомлень?
  27. 27.Як Nest-застосунок має зупинятися в Kubernetes, щоб не губити запити?
  28. 28.Що має перевіряти readiness-перевірка в Nest і чого має уникати liveness?
  29. 29.Як зробити вихідні HTTP-виклики з Nest стійкими?
  30. 30.Яку проблему може спричинити глобальний @Cron у масштабованому розгортанні Nest і як її розв'язати?
  31. 31.Як розгортати BullMQ-воркери Nest під навантаженням?
  32. 32.Чому помилки в обробниках подій (@OnEvent) треба обробляти обережно?
  33. 33.Як додати розподілений трейсинг у Nest-застосунок?
  34. 34.Як зробити логи Nest структурованими й пов'язаними між собою?
  35. 35.Як протестувати модуль, що використовує request-scoped провайдер?
  36. 36.Яка добра стратегія тестування шару бази Nest-застосунку в CI?
  37. 37.Як перевірити, що guards, pipes і фільтри правильно підключені до маршруту?
  38. 38.Як захистити GraphQL API на Nest від дуже дорогих запитів?
  39. 39.Чому екземпляри DataLoader у GraphQL-застосунку на Nest треба створювати на кожен запит?
  40. 40.Що дозволяє Apollo Federation (який підтримує GraphQL-модуль Nest)?
  41. 41.Які налаштування роблять Nest API безпечнішим за замовчуванням?
  42. 42.Як запобігти mass assignment при оновленні сутностей у Nest?
  43. 43.Чому секрети не повинні потрапляти в логи винятків чи запитів Nest?
  44. 44.Як безпечно обробляти завантаження файлів на масштабі в Nest?
  45. 45.Який розумний підхід до оновлення великого Nest-застосунку до нової мажорної версії?
  46. 46.Чому команда може обрати Nest замість мінімалістичного фреймворку на кшталт самого Fastify?
  47. 47.Як ділити DTO й валідацію між бекендом на Nest і фронтендом на TypeScript?
  48. 48.Чим тривожить відкритий Swagger UI у продакшені?
  49. 49.Як один interceptor може реалізувати ключі ідемпотентності для POST-ендпоінтів?
  50. 50.Як реалізувати кешування відповідей, що залежить від користувача, у Nest?
  51. 51.Як реалізувати версіонування API без дублювання цілих контролерів?
  52. 52.Яка пастка @Res() без passthrough для interceptors і фільтрів?
  53. 53.Як віддати великий файл стрімом у Nest, не завантажуючи його в пам'ять?
  54. 54.Чим onModuleInit відрізняється від onApplicationBootstrap?
  55. 55.Чому хуки життєвого циклу не спрацьовують звичним чином для request-scoped чи transient провайдерів?
  56. 56.Що відбувається з глобальними enhancers у мікросервісній частині гібридного застосунку за замовчуванням?
  57. 57.Як написати guard, що працює і для HTTP, і для GraphQL?
  58. 58.Що станеться, якщо кинути помилку всередині оператора map в interceptor?
  59. 59.Чому довгу CPU-важку роботу не варто виконувати в обробнику запиту Nest?
  60. 60.Як автоматично забезпечувати межі модулів у монорепозиторії Nest?
  61. 61.Чому добре відокремити запуск Nest-застосунку (main.ts) від його налаштування (наприклад, функції configureApp(app))?
  62. 62.Як зробити помилки ValidationPipe кориснішими для клієнтів API?
  63. 63.Чого НЕ дає app.useGlobalInterceptors() порівняно з APP_INTERCEPTOR?
  64. 64.Як глобально фільтрувати м'яко видалені записи з TypeORM у Nest?
  65. 65.Чому обробники @nestjs/event-emitter можуть виконатися до commit транзакції бази?
  66. 66.Що отримує onApplicationShutdown(signal) і чим це корисно?
  67. 67.Як обмежити вплив повільного сервісу нижче за течією на Nest API?
  68. 68.Чому тести контролерів не мають бути єдиними тестами правил авторизації?
  69. 69.З чим допомагає useMocker() у білдері тестового модуля?
  70. 70.Як Nest може отримувати повідомлення з брокера, для якого немає вбудованого транспорту, як-от AWS SQS?
  71. 71.Чому доменні сервіси мають кидати доменні помилки, а не HttpException?
  72. 72.Як обмежувати частоту запитів для кожного автентифікованого користувача, а не за IP, у @nestjs/throttler?
  73. 73.Як розсилати WebSocket-повідомлення між кількома інстансами Nest?
  74. 74.Що таке Backend for Frontend (BFF) і як Nest може його реалізувати?
  75. 75.Чому глобальний ClassSerializerInterceptor може не ховати поля, коли ви повертаєте результати Prisma?