Pytania rekrutacyjne System Design (Middle) z odpowiedziami
75 pytań na rozmowę rekrutacyjną z tematu System Design (Middle) - z poprawnymi odpowiedziami, wyjaśnieniami i linkami do dokumentacji.
Rozwiąż ten test- 1.Od czego poprawnie zaczynać odpowiedź na zadanie z frontend system design?
- 2.Dlaczego paginacja kursorowa jest lepsza od paginacji przez przesunięcie (
offset) dla feedu? - 3.Jak zaprojektować nieskończony feed z tysiącami postów?
- 4.Co ważne jest przy projektowaniu autouzupełniania (autocomplete)?
- 5.Jaki jest główny kompromis GraphQL w porównaniu z REST?
- 6.Czym jest problem N+1 w GraphQL i jak się go rozwiązuje?
- 7.Kiedy tRPC jest odpowiedni?
- 8.Jakie poziomy cache'owania są między użytkownikiem a bazą danych?
- 9.Jak poprawnie cache'ować paczki JS i CSS?
- 10.Co daje
Cache-Control: max-age=60, stale-while-revalidate=600? - 11.Dlaczego unieważnianie cache nazywa się jednym z najtrudniejszych zadań?
- 12.Jaka jest główna wada bezstanowych JWT w porównaniu z sesjami serwerowymi?
- 13.Gdzie bezpieczniej przechowywać token sesji w przeglądarce?
- 14.Po co para tokenów access i refresh?
- 15.Który przepływ OAuth jest zalecany dla SPA i aplikacji mobilnych?
- 16.Czym OpenID Connect różni się od OAuth 2.0?
- 17.Jak chronić się przed CSRF przy uwierzytelnianiu przez ciasteczka?
- 18.Co wybrać do powiadomień w czasie rzeczywistym, które idą tylko od serwera?
- 19.Co trzeba przewidzieć przy ponownym łączeniu WebSocket?
- 20.Jak bezpiecznie ponowić żądanie płatności przy błędzie sieci?
- 21.Po co do wykładniczego opóźnienia ponowień dodaje się losowy rozrzut (jitter)?
- 22.Jak poprawnie zorganizować przesyłanie plików użytkowników do chmury?
- 23.Jak niezawodnie przesyłać pliki o rozmiarze gigabajtów?
- 24.Jak radzić sobie z konfliktami, gdy dwóch użytkowników edytuje ten sam rekord?
- 25.Jak zorganizować tryb offline dla aplikacji do notatek?
- 26.Co czyni aplikację PWA?
- 27.Jaką strategię renderowania logicznie wybrać dla landingu, katalogu i panelu użytkownika?
- 28.Co jest złego w pełnej hydratacji dużej strony z treścią?
- 29.Jak śledzić wydajność u prawdziwych użytkowników?
- 30.Jak przyspieszyć przejście na następną stronę, którą użytkownik prawdopodobnie otworzy?
- 31.Czym zewnętrzne skrypty (analityka, czaty, reklamy) grożą wydajności?
- 32.Czym wydanie canary różni się od blue-green?
- 33.Jak stopniowo włączyć nową funkcję dla 10% użytkowników?
- 34.Jakie są zalety i wady monorepo dla kilku aplikacji frontendowych?
- 35.Co leży u podstaw skalowalnego systemu projektowego?
- 36.Jak interfejs powinien się zachować przy awarii jednego z widżetów dashboardu?
- 37.Po co przekazywać identyfikator żądania (request id / trace id) od frontendu do backendu?
- 38.Jak działa algorytm rate limiting „token bucket”?
- 39.Jak pokazywać kursory innych uczestników we wspólnym edytorze, nie przeciążając sieci?
- 40.Licznik nieprzeczytanych wiadomości różni się w różnych kartach. Jak to naprawić?
- 41.Jak ładować tłumaczenia w wielojęzycznym SPA, nie powiększając paczki?
- 42.Jakie nagłówki bezpieczeństwa HTTP warto skonfigurować dla aplikacji webowej?
- 43.Jak wydajnie wysyłać zdarzenia analityczne?
- 44.Dlaczego zwracanie
totalCountw każdej odpowiedzi listy może być kosztowne? - 45.Czym API Gateway różni się od BFF?
- 46.Jak aktualizować cache kliencki po mutacji, by użytkownik zobaczył zmiany?
- 47.Czym jest back/forward cache i jak go nie zepsuć?
- 48.Jak obsłużyć wygaśnięcie access tokena w trakcie pracy użytkownika?
- 49.Dlaczego dla dużych katalogów wyszukiwanie robi się na serwerze, a nie filtrowaniem na kliencie?
- 50.Jak zarządzać fokusem przy otwieraniu okna modalnego w SPA?
- 51.Czym różnią się
Cache-Control: no-cacheino-store? - 52.Co
Cache-Control: privateoznacza dla CDN? - 53.Kiedy przeglądarka wysyła żądanie preflight CORS i jak go uniknąć?
- 54.Co zmieniają ciasteczka
SameSite=LaxiSameSite=Strict? - 55.Czym jest IDOR i jak mu zapobiec?
- 56.Czym
PATCHróżni się odPUT? - 57.Po co używać standardowego formatu błędów, jak RFC 9457 Problem Details?
- 58.Jak klient powinien zareagować na
429 Too Many Requestsz nagłówkiemRetry-After? - 59.Co daje
<link rel="preconnect">? - 60.Na co pozwala
103 Early Hints? - 61.Która strategia buforowania w service workerze pasuje do jakiego zasobu?
- 62.W czym pomaga Background Sync w aplikacji działającej offline?
- 63.Kiedy ciężkie obliczenia warto przenieść do Web Workera?
- 64.Jak globalna aplikacja powinna obsługiwać daty i czas?
- 65.Czym monitoring syntetyczny różni się od monitoringu prawdziwych użytkowników (RUM)?
- 66.Czym różnią się SLI, SLO i SLA?
- 67.Strona potrzebuje danych z 6 mikroserwisów. Co zmniejszy liczbę żądań klienta?
- 68.Dlaczego endpoint webhooka powinien odpowiadać szybko, a zdarzenie przetwarzać asynchronicznie?
- 69.Czym różnią się sondy liveness i readiness?
- 70.Co dają persisted queries w GraphQL?
- 71.Jak ogłaszać aktualizacje asynchroniczne (np. „3 nowe wiadomości”) użytkownikom czytników ekranu?
- 72.Dlaczego sticky sessions na load balancerze mogą sprawiać problemy?
- 73.Jak zarządzać sekretami (klucze API, hasła do bazy) we wdrożeniu?
- 74.Dlaczego nieograniczone
GET /api/items(bez limitu) może stać się incydentem? - 75.Co jest kluczowe po stronie frontendu przy projektowaniu dużego formularza wieloetapowego (kreatora)?