Read in other languages: English 🇺🇸 ,
Polska 🇵🇱 , German 🇩🇪 , French 🇫🇷 ,
Spanish 🇪🇸 , Українська 🇺🇦 .
NestJS
Найпопулярніші запитання та відповіді на співбесіді з NestJS
1. Що таке NestJS і які він задачі вирішує?
2. Чим NestJS відрізняється від Express та Fastify?
3. Які основні складові NestJS?
4. Яка роль TypeScript у NestJS і чому важливий strict mode?
5. Що таке декоратори в NestJS? Наведи приклади.
6. Що таке Reflect.metadata і як NestJS використовує його під капотом?
7. Як створити власний декоратор у NestJS? (createParamDecorator, SetMetadata)
8. Що робить @Injectable() і навіщо він потрібен?
9. У чому різниця між @Controller і @Get()/@Post() декораторами?
10. Як NestJS обробляє HTTP-запити і визначає, який контролер викликати?
11. Як NestJS використовує decorators для побудови routing layer?
12. У чому різниця між imports, exports, providers і declarations в @Module?
13. Яка різниця між @Module imports та @Module providers?
14. Що таке динамічні модулі і коли їх варто використовувати?
15. Яка різниця provider types в NestJS? (useClass, useValue, useFactory)
16. Що таке scope провайдера? (DEFAULT, REQUEST, TRANSIENT)
17. Як працювати з циклічними залежностями (forwardRef) у великих системах?
18. Як структурувати масштабований застосунок на NestJS?
19. Як проєктувати REST API з правильною декомпозицією відповідальностей?
20. Який повний життєвий цикл запиту в NestJS?
21. У чому різниця між Middleware, Guards, Pipes та Interceptors?
22. Як застосувати Middleware глобально vs для конкретного роуту?
23. Що таке ExecutionContext і як він використовується?
24. Що таке Guard і чим він відрізняється від Middleware?
25. Як Guards інтегрується з авторизацією?
26. Що таке @SetMetadata() і як він працює з Guards через Reflector?
27. Як реалізувати JWT аутентифікацію через Guard?
28. Як у NestJS реалізувати RBAC та ABAC і коли який підхід краще використовувати?
29. Як реалізувати refresh token rotation і чому це важливо?
30. Що таке Pipe у NestJS і коли його використовувати?
31. Що таке DTO?
32. Чим відрізняється interface від class для типізації DTO — і чому в NestJS краще class?
33. Що таке mapped types у NestJS? (PartialType, OmitType, PickType, IntersectionType)
34. Як реалізувати валідацію за допомогою class-validator і pipes?
35. Як реалізувати глобальний Exception Filter і кастомні HTTP-помилки?
36. Як правильно обробляти помилки і повертати консистентну структуру відповіді?
37. Як правильно логувати помилки і не втрачати stack trace у production?
38. Що таке ConfigModule і чому його варто використовувати замість process.env?
39. Як правильно організувати .env файли для різних середовищ (dev, staging, prod)?
40. Як використовувати Joi або zod для валідації конфігурації при старті застосунку?
41. Як реалізувати feature flags у NestJS?
42. Як інтегрувати бази даних? (TypeORM, Prisma, Drizzle, Mongoose)
43. У чому різниця між TypeOrmModule.forRoot() і forFeature()?
44. Що таке Repository pattern у NestJS + TypeORM?
45. Чим відрізняється Repository pattern від Active Record — і коли який підхід обирати?
46. Що таке міграції в TypeORM/Prisma і чому synchronize: true небезпечно в production?
47. Як реалізувати soft delete в TypeORM?
48. Як реалізувати транзакції в TypeORM у NestJS?
49. Що таке N+1 проблема і як її вирішити в NestJS?
50. Що таке connection pooling і як його правильно налаштувати для бази даних?
51. Як захиститись від SQL injection у TypeORM/Prisma?
52. Як правильно організувати pagination у REST API? (offset vs cursor-based)
53. Як версіонувати API у NestJS? (URI, Header, Media type versioning)
54. Як реалізувати Swagger документацію у NestJS через @nestjs/swagger?
55. Як реалізувати CORS у NestJS і коли потрібні кастомні налаштування?
56. Що таке idempotency в контексті REST API і як її забезпечити?
57. Як реалізувати rate limiting у NestJS? (@nestjs/throttler)
58. Як реалізувати request tracing (додавати requestId до кожного запиту)?
59. Як обробити multipart/form-data і завантаження файлів у NestJS?
60. Як реалізувати compression (gzip/brotli) у NestJS?
61. Як реалізувати helmet і які HTTP-заголовки він встановлює?
62. Які основні OWASP-вразливості і як від них захиститись?
63. Як використовувати HttpModule (axios) у NestJS для запитів до зовнішніх API?
64. Як додати глобальні interceptors до axios у NestJS? (додавання headers, логування)
65. Як правильно типізувати відповідь зовнішнього API у TypeScript?
66. Як реалізувати retry логіку для зовнішніх HTTP-запитів у NestJS?
67. Що таке Circuit Breaker патерн і коли він потрібен?
68. Як реалізувати кешування (in-memory, Redis), і коли який підхід використовувати?
69. Що таке інвалідація кешу і як правильно її реалізувати?
70. Коли в NestJS варто використовувати Observables замість Promise?
71. У чому різниця між async/await і RxJS для роботи з асинхронною логікою, і коли який підхід використовувати?
72. Як уникнути блокування event loop у NestJS і підтримувати продуктивність?
73. Як оптимізувати latency (p95 / p99) і що впливає на ці метрики?
74. Як використовувати cluster mode у Node.js разом з NestJS для масштабування?
75. Як реалізувати cron-задачі у NestJS через @nestjs/schedule?
76. Що таке EventEmitter у NestJS і чим він відрізняється від черг (Bull)?
77. Як реалізувати внутрішню event-driven комунікацію між модулями через EventEmitter2?
78. Як реалізувати фонові задачі за допомогою Bull або BullMQ?
79. Як проєктувати ідемпотентні джоби (черги задач), щоб уникати дублювання виконання?
80. Як реалізувати WebSockets у NestJS?
81. Як реалізувати автентифікацію у WebSocket Gateway?
82. Які підходи використовують для масштабування real-time систем?
83. Які підходи до інтеграції GraphQL у NestJS (code-first vs schema-first), і в чому їх різниця?
84. Що таке resolvers у GraphQL і чим вони відрізняються від контролерів REST?
85. Як у GraphQL працювати з context і реалізувати авторизацію через нього?
86. Які транспортні протоколи та брокери повідомлень підтримуються (Kafka, Redis, gRPC, NATS) і в чому їх відмінності?
87. Як правильно проєктувати event-driven архітектуру і основні принципи такої системи?
88. Як працювати з distributed transactions у мікросервісах? (Saga pattern, eventual consistency)
89. Що таке CQRS і як його реалізувати в NestJS за допомогою @nestjs/cqrs?
90. Що таке Domain-Driven Design і як його принципи застосовуються в NestJS?
91. Що таке Hexagonal Architecture (Ports & Adapters) і як її реалізувати в NestJS?
92. Як реалізувати структуроване логування, і навіщо це потрібно?
93. Як у NestJS реалізувати моніторинг стану застосунку? (@nestjs/terminus)
94. Як реалізувати health checks для залежних сервісів (DB, Redis, зовнішні API)?
95. Як використовувати OpenTelemetry у NestJS?
96. Що таке distributed tracing і як його реалізують у мікросервісній архітектурі?
97. Як писати unit-тести в NestJS, і які є базові підходи до тестування?
98. Як правильно мокати залежності в NestJS, і коли це потрібно робити?
99. Як писати інтеграційні тести в NestJS з використанням TestingModule?
100. Що таке end-to-end (E2E) тестування в NestJS, і чим воно відрізняється від unit та integration тестів?
101. Що таке Nest CLI і які команди використовуються найчастіше?
102. Як правильно організувати Dockerfile для NestJS застосунку (multi-stage build)?