← Усі теми

Питання на співбесіді з System Design (Middle) з відповідями

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

Пройти цей тест
  1. 1.З чого правильно починати відповідь на задачу з frontend system design?
  2. 2.Чим курсорна пагінація краща за пагінацію за зсувом (offset) для стрічки?
  3. 3.Як спроєктувати нескінченну стрічку з тисячами постів?
  4. 4.Що важливо врахувати під час проєктування автодоповнення (autocomplete)?
  5. 5.Який головний компроміс GraphQL порівняно з REST?
  6. 6.Що таке проблема N+1 у GraphQL і як її розв'язують?
  7. 7.Коли доречний tRPC?
  8. 8.Які рівні кешування є між користувачем і базою даних?
  9. 9.Як правильно кешувати JS і CSS бандли?
  10. 10.Що дає Cache-Control: max-age=60, stale-while-revalidate=600?
  11. 11.Чому інвалідацію кешу називають однією з найскладніших задач?
  12. 12.Який головний недолік stateless JWT порівняно із серверними сесіями?
  13. 13.Де безпечніше зберігати токен сесії в браузері?
  14. 14.Навіщо потрібна пара access- і refresh-токенів?
  15. 15.Який OAuth-потік рекомендують для SPA й мобільних застосунків?
  16. 16.Чим OpenID Connect відрізняється від OAuth 2.0?
  17. 17.Як захиститися від CSRF за автентифікації через cookie?
  18. 18.Що обрати для сповіщень у реальному часі, які йдуть лише від сервера?
  19. 19.Що треба передбачити під час перепідключення WebSocket?
  20. 20.Як безпечно повторювати запит оплати в разі мережевої помилки?
  21. 21.Навіщо до експоненційної затримки повторів додають випадковий розкид (jitter)?
  22. 22.Як правильно організувати завантаження користувацьких файлів у хмарне сховище?
  23. 23.Як надійно завантажувати файли розміром у гігабайти?
  24. 24.Як боротися з конфліктами, коли двоє користувачів редагують один запис?
  25. 25.Як влаштувати офлайн-режим для застосунку нотаток?
  26. 26.Що робить застосунок PWA?
  27. 27.Яку стратегію рендерингу логічно обрати для лендингу, каталогу й особистого кабінету?
  28. 28.Чим погана повна гідратація великої контентної сторінки?
  29. 29.Як відстежувати продуктивність у реальних користувачів?
  30. 30.Як пришвидшити перехід на наступну сторінку, яку користувач, імовірно, відкриє?
  31. 31.Чим небезпечні сторонні скрипти (аналітика, чати, реклама) для продуктивності?
  32. 32.Чим canary-реліз відрізняється від blue-green?
  33. 33.Як поступово ввімкнути нову функцію для 10% користувачів?
  34. 34.Які плюси й мінуси монорепозиторію для кількох фронтенд-застосунків?
  35. 35.Що лежить в основі масштабованої дизайн-системи?
  36. 36.Як має поводитися інтерфейс у разі падіння одного з віджетів дашборда?
  37. 37.Навіщо передавати ідентифікатор запиту (request id / trace id) від фронтенду до бекенду?
  38. 38.Як працює алгоритм rate limiting «token bucket»?
  39. 39.Як показувати курсори інших учасників у спільному редакторі, не перевантажуючи мережу?
  40. 40.Лічильник непрочитаних повідомлень розходиться в різних вкладках. Як виправити?
  41. 41.Як завантажувати переклади в багатомовному SPA, не роздуваючи бандл?
  42. 42.Які HTTP-заголовки безпеки варто налаштувати для вебзастосунку?
  43. 43.Як ефективно надсилати події аналітики?
  44. 44.Чому повертати totalCount у кожній відповіді списку може бути дорого?
  45. 45.Чим API Gateway відрізняється від BFF?
  46. 46.Як оновлювати клієнтський кеш після мутації, щоб користувач побачив зміни?
  47. 47.Що таке back/forward cache і як його не зламати?
  48. 48.Як обробити спливання access-токена посеред роботи користувача?
  49. 49.Чому для великих каталогів пошук роблять на сервері, а не фільтрацією на клієнті?
  50. 50.Як керувати фокусом під час відкриття модального вікна в SPA?
  51. 51.Чим відрізняються Cache-Control: no-cache і no-store?
  52. 52.Що Cache-Control: private означає для CDN?
  53. 53.Коли браузер надсилає preflight-запит CORS і як його уникнути?
  54. 54.Що змінюють cookie з SameSite=Lax і SameSite=Strict?
  55. 55.Що таке IDOR і як йому запобігти?
  56. 56.Чим PATCH відрізняється від PUT?
  57. 57.Навіщо використовувати стандартний формат помилок на кшталт RFC 9457 Problem Details?
  58. 58.Як клієнту реагувати на 429 Too Many Requests із заголовком Retry-After?
  59. 59.Що дає <link rel="preconnect">?
  60. 60.Що дозволяє 103 Early Hints?
  61. 61.Яка стратегія кешування в service worker пасує для якого ресурсу?
  62. 62.З чим допомагає Background Sync у застосунку з офлайн-режимом?
  63. 63.Коли важкі обчислення варто виносити у Web Worker?
  64. 64.Як глобальному застосунку працювати з датами й часом?
  65. 65.Чим синтетичний моніторинг відрізняється від моніторингу реальних користувачів (RUM)?
  66. 66.Чим відрізняються SLI, SLO і SLA?
  67. 67.Сторінці потрібні дані з 6 мікросервісів. Що зменшить кількість запитів клієнта?
  68. 68.Чому ендпоінт вебхука має відповідати швидко, а подію обробляти асинхронно?
  69. 69.Чим відрізняються liveness- і readiness-проби?
  70. 70.Що дають persisted queries у GraphQL?
  71. 71.Як повідомити користувачів скрінрідерів про асинхронні оновлення (наприклад, «3 нові повідомлення»)?
  72. 72.Чому sticky sessions на балансувальнику можуть спричиняти проблеми?
  73. 73.Як керувати секретами (API-ключі, паролі БД) під час деплою?
  74. 74.Чому необмежений GET /api/items (без ліміту) може стати інцидентом?
  75. 75.Що важливо на фронтенді під час проєктування великої багатокрокової форми (майстра)?