Pytania rekrutacyjne NestJS (Senior) z odpowiedziami
75 pytań na rozmowę rekrutacyjną z tematu NestJS (Senior) - z poprawnymi odpowiedziami, wyjaśnieniami i linkami do dokumentacji.
Rozwiąż ten test- 1.Skąd Nest wie, co wstrzyknąć do
constructor(private users: UsersService)? - 2.Dlaczego bundler lub kompilator bez obsługi metadanych dekoratorów może zepsuć aplikację Nest?
- 3.Jak zorganizowany jest kontener DI między modułami?
- 4.Provider o zakresie REQUEST jest wstrzyknięty do serwisu-singletonu. Co się stanie?
- 5.Do czego służą durable providery?
- 6.Jak wstrzyknąć bieżące żądanie do providera i ile to kosztuje?
- 7.Jak przy starcie znaleźć wszystkie providery z własnym dekoratorem, np. żeby automatycznie zarejestrować handlery zdarzeń?
- 8.Jak
ConfigurableModuleBuilderpomaga pisać wielokrotnego użytku moduł dynamiczny? - 9.Dlaczego
forwardRefmoże ukrywać problem projektowy, nawet gdy naprawia błąd? - 10.Dlaczego przy zależnościach cyklicznych wstrzyknięta wartość może być
undefinedw konstruktorze, a później już zdefiniowana? - 11.Gdzie narzut Nesta zwykle ma znaczenie, a gdzie nie?
- 12.Dlaczego serializacja
class-transformermoże być wąskim gardłem przy dużych odpowiedziach? - 13.Jak skrócić zimny start aplikacji Nest na platformach serverless?
- 14.Dlaczego w developmencie z Nestem często używa się SWC?
- 15.Na co muszą być przygotowane handlery w mikroserwisach Nest na Kafce?
- 16.Dlaczego żądanie-odpowiedź (
client.send) między mikroserwisami bywa ryzykowne w dużej skali? - 17.Jak niezawodnie publikować zdarzenia z serwisu Nest, który też zapisuje do bazy?
- 18.Na czym opiera się transport gRPC w Nest?
- 19.Jak przekazywać trace lub correlation ID między mikroserwisami Nest?
- 20.Jak ustrukturyzować dużą bazę kodu Nest, żeby granice pozostały jasne?
- 21.Jak wygląda architektura heksagonalna (ports and adapters) w Nest?
- 22.Kiedy
@nestjs/cqrssię opłaca? - 23.Jak utrzymać spójność transakcji między kilkoma serwisami w jednym żądaniu bez przekazywania obiektu transakcji wszędzie?
- 24.Jak zaimplementować w Nest wielodostępność z bazą na tenanta?
- 25.Jakie jest ryzyko trzymania logiki autoryzacji tylko w guardach?
- 26.Dlaczego warto mieć tę samą walidację i autoryzację dla HTTP, GraphQL i handlerów wiadomości?
- 27.Jak aplikacja Nest powinna zamykać się w Kubernetes, żeby nie gubić żądań?
- 28.Co powinien sprawdzać readiness check w Nest, a czego unikać liveness?
- 29.Jak uodpornić wychodzące wywołania HTTP z Nesta?
- 30.Jaki problem może wywołać globalny
@Cronw skalowanym wdrożeniu Nest i jak go rozwiązać? - 31.Jak wdrażać workery BullMQ w Nest pod obciążeniem?
- 32.Dlaczego błędy w handlerach zdarzeń (
@OnEvent) trzeba obsługiwać ostrożnie? - 33.Jak dodać rozproszony tracing do aplikacji Nest?
- 34.Jak sprawić, by logi Nesta były strukturalne i powiązane?
- 35.Jak przetestować moduł używający providera request-scoped?
- 36.Jaka jest dobra strategia testowania warstwy bazy aplikacji Nest w CI?
- 37.Jak sprawdzić, czy guardy, pipes i filtry są poprawnie podpięte do trasy?
- 38.Jak chronić GraphQL API na Nest przed bardzo kosztownymi zapytaniami?
- 39.Dlaczego instancje DataLoadera w aplikacji GraphQL na Nest trzeba tworzyć dla każdego żądania?
- 40.Na co pozwala Apollo Federation (obsługiwana przez moduł GraphQL Nesta)?
- 41.Jakie ustawienia czynią API w Nest domyślnie bezpieczniejszym?
- 42.Jak zapobiegać mass assignment przy aktualizacji encji w Nest?
- 43.Dlaczego sekrety nie powinny trafiać do logów wyjątków lub żądań w Nest?
- 44.Jak bezpiecznie obsługiwać upload plików w dużej skali w Nest?
- 45.Jakie jest rozsądne podejście do aktualizacji dużej aplikacji Nest do nowej wersji głównej?
- 46.Dlaczego zespół może wybrać Nest zamiast minimalistycznego frameworka, np. samego Fastify?
- 47.Jak współdzielić DTO i walidację między backendem w Nest a frontendem w TypeScripcie?
- 48.Jaki jest problem z udostępnionym Swagger UI na produkcji?
- 49.Jak jeden interceptor może zaimplementować klucze idempotencji dla endpointów POST?
- 50.Jak zaimplementować cache odpowiedzi zależny od użytkownika w Nest?
- 51.Jak zaimplementować wersjonowanie API bez duplikowania całych kontrolerów?
- 52.Jaka jest pułapka
@Res()bezpassthroughdla interceptorów i filtrów? - 53.Jak strumieniować pobieranie dużego pliku w Nest bez wczytywania go do pamięci?
- 54.Czym różni się
onModuleInitodonApplicationBootstrap? - 55.Dlaczego hooki cyklu życia nie działają w zwykły sposób dla providerów request-scoped i transient?
- 56.Co domyślnie dzieje się z globalnymi enhancerami w mikroserwisowej części aplikacji hybrydowej?
- 57.Jak napisać guarda działającego dla HTTP i GraphQL?
- 58.Co się stanie po rzuceniu błędu wewnątrz operatora
mapw interceptorze? - 59.Dlaczego długiej pracy obciążającej CPU nie należy wykonywać w handlerze żądania Nest?
- 60.Jak automatycznie egzekwować granice modułów w monorepo Nest?
- 61.Dlaczego dobrze oddzielić start aplikacji Nest (
main.ts) od jej konfiguracji (np. funkcjiconfigureApp(app))? - 62.Jak uczynić błędy
ValidationPipebardziej użytecznymi dla klientów API? - 63.Czego NIE daje
app.useGlobalInterceptors()w porównaniu zAPP_INTERCEPTOR? - 64.Jak globalnie filtrować miękko usunięte rekordy z TypeORM w Nest?
- 65.Dlaczego handlery
@nestjs/event-emittermogą wykonać się przed commitem transakcji bazy? - 66.Co dostaje
onApplicationShutdown(signal)i dlaczego to przydatne? - 67.Jak ograniczyć wpływ wolnego serwisu niżej w łańcuchu na API w Nest?
- 68.Dlaczego testy kontrolerów nie powinny być jedynymi testami reguł autoryzacji?
- 69.W czym pomaga
useMocker()w builderze modułu testowego? - 70.Jak Nest może konsumować wiadomości z brokera, dla którego nie ma wbudowanego transportu, np. AWS SQS?
- 71.Dlaczego serwisy domenowe powinny rzucać błędy domenowe, a nie
HttpException? - 72.Jak limitować żądania per uwierzytelniony użytkownik zamiast per IP w
@nestjs/throttler? - 73.Jak rozgłaszać wiadomości WebSocket między kilkoma instancjami Nest?
- 74.Czym jest Backend for Frontend (BFF) i jak Nest może go zaimplementować?
- 75.Dlaczego globalny
ClassSerializerInterceptormoże nie ukrywać pól, gdy zwracasz wyniki z Prismy?