Frontend System Design
Для чего модуль
Подготовиться к senior-раундам и реальным архитектурным задачам, где нужно проектировать систему, а не только писать компоненты.
Результат после прохождения
- Вы декомпозируете frontend-систему на подсистемы, контракты и потоки данных.
- Вы проектируете решение с учетом NFR: производительность, надежность, безопасность, observability.
- Вы умеете вести дизайн-сессию: требования -> архитектура -> риски -> rollout.
- Вы защищаете решение под challenge-вопросами интервьюера/архитектора.
Термины и аббревиатуры
| Термин | Коротко |
|---|---|
NFR | Нефункциональные требования |
SLO | Целевой сервисный уровень |
Latency budget | Лимит задержки |
Rollout | Поэтапный выпуск |
Mitigation | Снижение риска |
Фокус по грейдам
Junior: понимать базовые механики и объяснять их простыми примерами.Middle: применять тему в продуктовых сценариях с учетом рисков и ограничений.Senior: управлять архитектурными trade-offs, метриками и эволюцией решения.
Как работать с модулем
- На каждый урок берите один system design кейс (feed, dashboard, chat, admin platform).
- Всегда фиксируйте assumptions и open questions.
- Каждое решение связывайте с метрикой и operational cost.
Программа модуля
Урок 1. Фреймворк системного ответа
Цель: выстроить стабильный шаблон ответа на system design задачу.
Последовательность ответа
- Clarify requirements.
- Определить масштабы и ограничения.
- Предложить high-level архитектуру.
- Углубиться в 1-2 критичные подсистемы.
- Риски, компромиссы, rollout plan.
Что ценится на интервью
- Структура мышления.
- Осознанные trade-offs.
- Умение признавать неопределенность и работать с ней.
Мини-задача (обязательная)
Сделайте 15-минутный design pitch для кейса «новостная лента с персонализацией».
Что спросит интервьюер: как вы определяете границы системы до выбора технологий.
Критерий готовности по уроку: вы можете дать связный high-level дизайн за ограниченное время без потери логики.
Урок 2. Нефункциональные требования
Цель: проектировать систему с учетом ограничений, а не только happy-path функционала.
NFR, которые чаще всего решают исход
- Performance (LCP/INP, latency budgets).
- Reliability (error budget, fallback).
- Security/privacy.
- Scalability и team maintainability.
Работа с нагрузкой и деградацией
- Caching strategy на уровне данных/маршрутов.
- Rate limits и graceful degradation.
- Приоритеты: какие функции должны работать при частичном отказе.
Мини-задача (обязательная)
Для выбранного кейса сформулируйте NFR + SLO + budgets и покажите, как они влияют на архитектурный выбор.
Что спросит интервьюер: какие нефункциональные требования для этой системы критичны и почему.
Критерий готовности по уроку: вы связываете архитектуру с NFR и можете объяснить цену каждого компромисса.
Урок 3. Эволюция системы
Цель: показать, как система будет расти и что сломается первым.
Growth planning
- Что произойдет при росте x10 пользователей.
- Где bottleneck по данным, рендеру, интеграциям.
- Какие части нужно выделить/перепроектировать первыми.
Migration/rollout
- Этапность изменений.
- Backward compatibility.
- Rollback plan на каждом шаге.
Мини-задача (обязательная)
Сделайте evolution roadmap на 6-12 месяцев для вашего system design кейса: этапы, риски, метрики выхода.
Что спросит интервьюер: как будет эволюционировать решение при росте трафика и команды.
Критерий готовности по уроку: вы можете показать реалистичный план роста системы без «перепишем потом».
Урок 4. Защита решения на интервью
Цель: выдерживать challenge-вопросы и защищать решение аргументированно.
Типичные challenge-вопросы
- Почему не более простое решение?
- Где single point of failure?
- Что будет при отказе ключевой зависимости?
- Как это поддерживать командой из N человек?
Шаблон ответа на challenge
- Подтвердить риск/ограничение.
- Показать, как текущий дизайн его покрывает.
- Если не покрывает — предложить phased improvement.
Мини-задача (обязательная)
Проведите mock-defense: 5 жестких вопросов по вашему дизайну + письменные ответы по шаблону.
Что спросит интервьюер: почему это решение лучше альтернатив в условиях заданных ограничений.
Критерий готовности по уроку: вы можете защищать дизайн в режиме дискуссии, оставаясь структурным и прагматичным.
Практика
- Подготовьте 2 полных design-doc для разных кейсов.
- Для каждого кейса опишите NFR, риски, mitigation и rollout.
- Проведите сухой прогон с таймером 45 минут (дизайн + Q&A).
- Закрепите в Senior Frontend и Playbook.
- Проверьте идеи в Песочнице на уровне упрощенных прототипов.
Связь с треками и вопросами
- Треки: Middle трек, Senior трек.
- Вопросы: Senior Frontend, Playbook.
- Повторение: 3-5 вопросов без подсказок -> сверка с модулем -> повтор через 24 часа.
Критерий готовности
Вы ведете системный диалог от требований до внедрения, а не ограничиваетесь «рисованием коробочек».
Артефакты после модуля
- Два полноценных design-doc.
- Шаблон системного ответа для интервью.
- Список challenge-вопросов и защищенных ответов.
- Evolution roadmap с метриками контроля.