Перейти к основному содержимому

Frontend System Design

Для чего модуль

Подготовиться к senior-раундам и реальным архитектурным задачам, где нужно проектировать систему, а не только писать компоненты.

Результат после прохождения

  1. Вы декомпозируете frontend-систему на подсистемы, контракты и потоки данных.
  2. Вы проектируете решение с учетом NFR: производительность, надежность, безопасность, observability.
  3. Вы умеете вести дизайн-сессию: требования -> архитектура -> риски -> rollout.
  4. Вы защищаете решение под challenge-вопросами интервьюера/архитектора.

Термины и аббревиатуры

ТерминКоротко
NFRНефункциональные требования
SLOЦелевой сервисный уровень
Latency budgetЛимит задержки
RolloutПоэтапный выпуск
MitigationСнижение риска

Фокус по грейдам

  1. Junior: понимать базовые механики и объяснять их простыми примерами.
  2. Middle: применять тему в продуктовых сценариях с учетом рисков и ограничений.
  3. Senior: управлять архитектурными trade-offs, метриками и эволюцией решения.

Как работать с модулем

  1. На каждый урок берите один system design кейс (feed, dashboard, chat, admin platform).
  2. Всегда фиксируйте assumptions и open questions.
  3. Каждое решение связывайте с метрикой и operational cost.

Программа модуля

Урок 1. Фреймворк системного ответа

Цель: выстроить стабильный шаблон ответа на system design задачу.

Последовательность ответа

  1. Clarify requirements.
  2. Определить масштабы и ограничения.
  3. Предложить high-level архитектуру.
  4. Углубиться в 1-2 критичные подсистемы.
  5. Риски, компромиссы, rollout plan.

Что ценится на интервью

  1. Структура мышления.
  2. Осознанные trade-offs.
  3. Умение признавать неопределенность и работать с ней.

Мини-задача (обязательная)

Сделайте 15-минутный design pitch для кейса «новостная лента с персонализацией».

Что спросит интервьюер: как вы определяете границы системы до выбора технологий.

Критерий готовности по уроку: вы можете дать связный high-level дизайн за ограниченное время без потери логики.

Урок 2. Нефункциональные требования

Цель: проектировать систему с учетом ограничений, а не только happy-path функционала.

NFR, которые чаще всего решают исход

  1. Performance (LCP/INP, latency budgets).
  2. Reliability (error budget, fallback).
  3. Security/privacy.
  4. Scalability и team maintainability.

Работа с нагрузкой и деградацией

  1. Caching strategy на уровне данных/маршрутов.
  2. Rate limits и graceful degradation.
  3. Приоритеты: какие функции должны работать при частичном отказе.

Мини-задача (обязательная)

Для выбранного кейса сформулируйте NFR + SLO + budgets и покажите, как они влияют на архитектурный выбор.

Что спросит интервьюер: какие нефункциональные требования для этой системы критичны и почему.

Критерий готовности по уроку: вы связываете архитектуру с NFR и можете объяснить цену каждого компромисса.

Урок 3. Эволюция системы

Цель: показать, как система будет расти и что сломается первым.

Growth planning

  1. Что произойдет при росте x10 пользователей.
  2. Где bottleneck по данным, рендеру, интеграциям.
  3. Какие части нужно выделить/перепроектировать первыми.

Migration/rollout

  1. Этапность изменений.
  2. Backward compatibility.
  3. Rollback plan на каждом шаге.

Мини-задача (обязательная)

Сделайте evolution roadmap на 6-12 месяцев для вашего system design кейса: этапы, риски, метрики выхода.

Что спросит интервьюер: как будет эволюционировать решение при росте трафика и команды.

Критерий готовности по уроку: вы можете показать реалистичный план роста системы без «перепишем потом».

Урок 4. Защита решения на интервью

Цель: выдерживать challenge-вопросы и защищать решение аргументированно.

Типичные challenge-вопросы

  1. Почему не более простое решение?
  2. Где single point of failure?
  3. Что будет при отказе ключевой зависимости?
  4. Как это поддерживать командой из N человек?

Шаблон ответа на challenge

  1. Подтвердить риск/ограничение.
  2. Показать, как текущий дизайн его покрывает.
  3. Если не покрывает — предложить phased improvement.

Мини-задача (обязательная)

Проведите mock-defense: 5 жестких вопросов по вашему дизайну + письменные ответы по шаблону.

Что спросит интервьюер: почему это решение лучше альтернатив в условиях заданных ограничений.

Критерий готовности по уроку: вы можете защищать дизайн в режиме дискуссии, оставаясь структурным и прагматичным.

Практика

  1. Подготовьте 2 полных design-doc для разных кейсов.
  2. Для каждого кейса опишите NFR, риски, mitigation и rollout.
  3. Проведите сухой прогон с таймером 45 минут (дизайн + Q&A).
  4. Закрепите в Senior Frontend и Playbook.
  5. Проверьте идеи в Песочнице на уровне упрощенных прототипов.

Связь с треками и вопросами

  1. Треки: Middle трек, Senior трек.
  2. Вопросы: Senior Frontend, Playbook.
  3. Повторение: 3-5 вопросов без подсказок -> сверка с модулем -> повтор через 24 часа.

Критерий готовности

Вы ведете системный диалог от требований до внедрения, а не ограничиваетесь «рисованием коробочек».

Артефакты после модуля

  1. Два полноценных design-doc.
  2. Шаблон системного ответа для интервью.
  3. Список challenge-вопросов и защищенных ответов.
  4. Evolution roadmap с метриками контроля.

Куда дальше

  1. Tooling и Delivery
  2. Node.js
  3. Frontend System Design