Фреймворк ответа: требования, архитектура, данные, API, оптимизации

↑ 8.4 Frontend System Design · → Следующая

Желательно~3 мин чтенияУровень: senior

Зачем это на собесе

Frontend System Design оценивает структуру мышления: умеете ли вы уточнять требования, разбивать систему и обсуждать компромиссы.

Тайминг на 45–60 минут

МинутыЭтап
0–8Требования и границы
8–15High-level архитектура
15–30Данные, состояние, API
30–45Производительность, безопасность, надёжность
45–60Компромиссы, эволюция, вопросы

Этапы ответа

  1. Требования: функциональные (что делает), нефункциональные (нагрузка, устройства, offline, доступность, SEO, языки). Уточняйте: платформа, масштаб, ожидаемая задержка, пользователи.
  2. Архитектура: компоненты и их границы, дерево компонентов, роутинг, шаблон рендеринга (CSR/SSR).
  3. Модель данных и состояние: сущности, где хранится (серверное, клиентское, URL), нормализация, кэш.
  4. API: REST/GraphQL, форма запросов, пагинация, ошибки, версии, real-time.
  5. Оптимизации: производительность (Web Vitals, code splitting), UX (skeleton, optimistic UI), офлайн.
  6. Безопасность и надёжность: авторизация, XSS/CSRF, повторные попытки, деградация.
  7. Доступность и i18n.
  8. Тестирование и мониторинг.
  9. Компромиссы и эволюция: что бы сделали при росте.

Диаграмма высокого уровня

[Browser]
  ├─ UI (components)
  ├─ State (server cache + client state + URL)
  ├─ Data layer (API client, cache, retry)
  └─ Platform (routing, i18n, a11y, monitoring)
        │
     [CDN] → [BFF / API Gateway] → [Backend services]

Что оценивают

  • умение уточнять и структурировать;
  • глубина в ключевых местах (данные, производительность);
  • обоснование выбора и альтернативы;
  • компромиссы: сложность, время, стоимость, UX;
  • коммуникация: вы ведёте интервью.

Ошибки

  • сразу рисовать компоненты без требований;
  • перечислять технологии без причины;
  • игнорировать производительность, ошибки и доступность;
  • не называть ограничения решения.

Вопросы с ответами