Pytania rekrutacyjne Node.js (Senior) z odpowiedziami

75 pytań na rozmowę rekrutacyjną z tematu Node.js (Senior) - z poprawnymi odpowiedziami, wyjaśnieniami i linkami do dokumentacji.

Rozwiąż ten test
  1. 1.Jak zorganizowana jest sterta V8 na potrzeby odśmiecania?
  2. 2.Kontener ma 2 GB pamięci, ale proces Node.js pada z „JavaScript heap out of memory” przy około 1,4 GB. Co sprawdzić?
  3. 3.Który wzorzec to klasyczna przyczyna wycieku pamięci w serwerze Node.js?
  4. 4.Jak znaleźć, co wycieka w procesie Node.js?
  5. 5.Dlaczego domknięcie może nieoczekiwanie zatrzymywać pamięć?
  6. 6.Czym są ukryte klasy (shapes) w V8 i dlaczego są ważne?
  7. 7.Co process.memoryUsage() raportuje jako rss?
  8. 8.Do czego WeakRef i FinalizationRegistry się NIE nadają?
  9. 9.Jak znaleźć funkcje najbardziej obciążające CPU w warunkach zbliżonych do produkcji?
  10. 10.Opóźnienie p99 jest wysokie, ale średnie zużycie CPU niskie. Co może być przyczyną?
  11. 11.Co zwykle sprawia, że wolne wyrażenie regularne blokuje serwer Node.js (ReDoS)?
  12. 12.Dlaczego JSON.stringify dużej odpowiedzi może być wąskim gardłem i co pomaga?
  13. 13.Kiedy zwiększenie UV_THREADPOOL_SIZE naprawdę pomaga?
  14. 14.Dlaczego dns.lookup może być ukrytym wąskim gardłem dla wychodzących żądań HTTP?
  15. 15.Jak dobrze współdzielić duże dane binarne między worker threads bez kopiowania?
  16. 16.Dlaczego serwer powinien używać puli worker threads zamiast tworzyć nowego workera na każde żądanie?
  17. 17.Za load balancerem (np. AWS ALB z idle timeout 60 s) klienci czasem dostają błąd 502. Jaka jest częsta przyczyna?
  18. 18.Dlaczego server.close() może nie skończyć się podczas graceful shutdown?
  19. 19.Jak serwer powinien ograniczać rozmiar body przychodzących żądań?
  20. 20.Przed czym chroni server.requestTimeout?
  21. 21.Co zmienia HTTP/2 dla API Node.js używanego przez przeglądarki?
  22. 22.Czym jest undici w Node.js?
  23. 23.Co daje generator asynchroniczny w pipeline?
  24. 24.Co kontroluje highWaterMark?
  25. 25.Jak strumienie Node.js współpracują z Web Streams (ReadableStream)?
  26. 26.Przetwarzając strumień uploadu, wywołujesz funkcję asynchroniczną dla każdego kawałka, nie czekając na nią. Jakie jest ryzyko?
  27. 27.Czym jest prototype pollution?
  28. 28.Jak bezpiecznie zwrócić plik, o który użytkownik prosi z katalogu uploads?
  29. 29.Twoje API pobiera URL podany przez użytkownika (np. do podglądu linków). Przed jakim atakiem musisz się chronić?
  30. 30.Co robi model uprawnień Node.js (--permission)?
  31. 31.Który środek najbardziej pomaga przeciw złośliwym wersjom pakietów (atakom na łańcuch dostaw)?
  32. 32.Dlaczego eval (lub new Function) na danych użytkownika jest niebezpieczne nawet w „sandboksie” jak vm?
  33. 33.Przed jakim problemem na poziomie HTTP, poza błędami aplikacji, trzeba chronić API Node.js?
  34. 34.Dlaczego proces Node.js w kontenerze powinien działać jako użytkownik inny niż root?
  35. 35.Po co dodawać losowy jitter do wykładniczego backoffu przy ponawianiu nieudanych wywołań?
  36. 36.Co robi circuit breaker?
  37. 37.Jaki problem rozwiązuje wzorzec transactional outbox?
  38. 38.Kolejka wiadomości dostarcza je „co najmniej raz”. Co muszą robić konsumenci?
  39. 39.Czym jest cache stampede i jak mu zapobiec?
  40. 40.Który algorytm limitowania żądań pozwala na krótkie skoki przy zachowaniu średniego tempa?
  41. 41.Dlaczego długą lub obciążającą CPU pracę warto wynieść poza ścieżkę żądania HTTP?
  42. 42.Jak nie dopuścić, żeby wolna zależność położyła cały serwis (wzorzec bulkhead)?
  43. 43.Dlaczego zespół może wybrać modularny monolit zamiast mikroserwisów dla nowego produktu w Node.js?
  44. 44.Co OpenTelemetry daje serwisom Node.js?
  45. 45.Jakie metryki tworzą metodę RED monitorowania serwisu?
  46. 46.Do czego służy diagnostics_channel?
  47. 47.Czym jest raport diagnostyczny (--report-on-fatalerror, process.report.writeReport())?
  48. 48.Proces Node.js nie kończy się po zakończeniu głównego skryptu. Jaka jest zwykle przyczyna?
  49. 49.Dlaczego uncaughtException + „zaloguj i działaj dalej” to zły wzorzec?
  50. 50.Na co pozwalają hooki dostosowywania modułów (module.register, registerHooks)?
  51. 51.Czym jest „dual package hazard”?
  52. 52.Czym jest Node-API (N-API)?
  53. 53.Czym są Single Executable Applications (SEA) w Node.js?
  54. 54.Co daje kodowi Node.js deklaracja using (explicit resource management)?
  55. 55.Jak Node.js traktuje enum i namespace przy uruchamianiu TypeScriptu z usuwaniem typów?
  56. 56.Dlaczego izolacja testów ma znaczenie w node --test i jak domyślnie działa?
  57. 57.Do czego przydaje się start ze snapshotu (--build-snapshot)?
  58. 58.Uruchamiając Node.js w Kubernetes, czy używać modułu cluster w każdym podzie?
  59. 59.Dlaczego poziomo skalowany serwis Node.js powinien być bezstanowy?
  60. 60.Jaki jest główny kompromis między round-robin w cluster a rozdzielaniem połączeń przez system?
  61. 61.Jak nie dopuścić, żeby jeden tenant lub klient wyczerpał współdzielone API Node.js?
  62. 62.Twój serwis przy każdym żądaniu wywołuje trzy API i może przetrwać awarię jednego. Jakie podejście pasuje?
  63. 63.Jak DataLoader rozwiązuje problem N+1 w serwerze GraphQL?
  64. 64.Kiedy gRPC pasuje lepiej niż REST/JSON?
  65. 65.Jak klucze idempotencji sprawiają, że żądania POST można bezpiecznie ponawiać?
  66. 66.Jak rozwijać publiczne API bez psucia istniejących klientów?
  67. 67.Dlaczego proces Node.js działający jako PID 1 w kontenerze potrzebuje strategii dla SIGINT/SIGTERM?
  68. 68.Jak rozsądnie uruchamiać zadania cykliczne (cron) w serwisie Node.js z kilkoma instancjami?
  69. 69.Dlaczego AsyncLocalStorage może tracić kontekst w niektórych bibliotekach i co to naprawia?
  70. 70.Klient rozłącza się, gdy twój handler wykonuje wolne zapytanie do bazy. Jak nie marnować pracy?
  71. 71.Skalujesz do 40 instancji, każda z pulą 20 połączeń, a PostgreSQL zaczyna odrzucać połączenia. Co pomoże?
  72. 72.Dwa żądania jednocześnie czytają rekord, zmieniają go i zapisują, a jedna zmiana ginie. Jak zapobiega temu blokowanie optymistyczne?
  73. 73.Co oznacza load shedding dla przeciążonego serwisu Node.js?
  74. 74.Jak wdrożyć nową wersję API Node.js bez gubienia żądań?
  75. 75.Serwis wykonuje ciężkie przetwarzanie obrazów lub wideo. Które podejście jest najrozsądniejsze w stosie Node.js?