Senior Frontend
Экспресс-шпаргалка 20/20
- Архитектура должна задавать границы доменов, ownership, правила зависимостей и предсказуемую эволюцию системы, а не только структуру папок.
- Микрофронтенды полезны при высокой автономности команд и разных циклах поставки, но вредят, если добавляют сложность быстрее, чем приносят бизнес-выгоду.
- Performance budget - это численные пороги по ключевым метрикам и размеру ресурсов, которые контролируются автоматически в CI и в проде.
- Стратегия рендеринга выбирается по типу контента, требованиям к SEO/персонализации, SLA по latency и стоимости эксплуатации.
- Нужно разделить server state, UI state и derived state, задать ownership и хранить состояние максимально близко к месту использования.
- Надежный слой данных должен стандартизировать ретраи, таймауты, отмену, дедупликацию и единый формат ошибок для UI и мониторинга.
- Оптимистичные обновления ускоряют UX, но без rollback, idempotency и обработки конфликтов приводят к рассинхронизации данных.
- Design System - это продукт с API, версионированием, токенами, governance и метриками внедрения, а не набор разрозненных компонентов.
- Accessibility должна быть частью Definition of Done и CI-процесса, а не ручной проверкой в конце релиза.
- Observability включает метрики, логи, ошибки, трассировку и runbooks, чтобы быстро находить и устранять причины деградаций.
- Базовый набор: защита от XSS/CSRF, безопасное хранение сессии, CSP, контроль third-party скриптов и регулярный аудит зависимостей.
- Release strategy должна обеспечивать управляемый rollout, быстрый rollback и контроль качества через метрики.
- Error budget - это допустимый объем деградаций относительно SLO, который помогает балансировать скорость доставки и стабильность.
- Комбинировать виртуализацию, пагинацию и оптимизацию рендера с учетом доступности и UX-навигации.
- Когда CPU-heavy вычисления мешают интерактивности main thread и их можно выполнить без прямого доступа к DOM.
- CI должен комбинировать быстрые обязательные проверки в PR и расширенные прогоны по расписанию, сохраняя быстрый feedback loop.
- Тестирование должно быть risk-based: защищать критичные пользовательские потоки минимально достаточным набором unit/integration/e2e.
- Эволюция контрактов должна быть управляемой: schema как source of truth, окно деприкации и автоматическая проверка совместимости.
- Postmortem должен быть blameless, с root-cause анализом и измеримыми action items с владельцами и сроками.
- Senior отвечает не только за код, но и за качество инженерных решений, развитие команды и влияние на продуктовые результаты.
1. Как проектировать frontend-архитектуру крупного продукта?
Теги: architecture, modularity, ownership, scaling
Сложность: Senior
Короткий ответ
Архитектура должна задавать границы доменов, ownership, правила зависимостей и предсказуемую эволюцию системы, а не только структуру папок.
Что сказать на интервью (30-60 секунд)
- Где это применяется: В проектировании модулей, границ ответственности и поддерживаемой архитектуры продукта.
- Главный риск: Размытые границы повышают связанность, замедляют изменения и увеличивают цену регрессий.
- Как проверяете решение: Оформляю решение через ADR, затем проверяю ключевой trade-off на прототипе и эксплуатационных метриках.
Мини-пример
// eslint rule idea: domain imports only from public API
import { createOrder } from '@/domains/orders/public-api';
Углубление (2-3 минуты)
- Свяжите тему "Как проектировать frontend-архитектуру крупного продукта?" с одним production-сценарием и объясните, почему она влияет на результат.
- Зафиксируйте границы ответственности между модулями и причины такого разделения.
- Сформулируйте ключевой trade-off и объясните, как решение масштабируется на уровне системы.
Типичные ошибки
- Смешивают границы модулей и получают высокий coupling.
- Оптимизируют локально, ухудшая глобальную архитектуру.
- Путают соседние концепции и не обозначают границы применимости выбранного подхода.
Follow-up вопросы
- Где проходит boundary между модулями в этом кейсе?
- Какое решение вы зафиксируете в ADR и какие альтернативы отвергнете?
- Какой trade-off на уровне архитектуры здесь самый критичный?
Что повторить
- Артефакт
ADRили эквивалентный документ решения. - Ключевые trade-offs и причины выбранного решения.
- Пройдите 2-3 связных вопроса в Банке вопросов и проверьте устойчивость ответа.
Связанные модули и карта
- Обучение: Frontend-архитектура
- Обучение: Frontend System Design
- Карта подготовки: Frontend System Design
2. Когда микрофронтенды оправданы, а когда вредят?
Теги: architecture, microfrontends, platform, governance
Сложность: Senior
Короткий ответ
Микрофронтенды полезны при высокой автономности команд и разных циклах поставки, но вредят, если добавляют сложность быстрее, чем приносят бизнес-выгоду.
Что сказать на интервью (30-60 секунд)
- Где это применяется: В проектировании модулей, границ ответственности и поддерживаемой архитектуры продукта.
- Главный риск: Размытые границы повышают связанность, замедляют изменения и увеличивают цену регрессий.
- Как проверяете решение: Оформляю решение через ADR, затем проверяю ключевой trade-off на прототипе и эксплуатационных метриках.
Мини-пример
// Module Federation (концептуально)
const Header = React.lazy(() => import('shell/Header'));
Углубление (2-3 минуты)
- Свяжите тему "Когда микрофронтенды оправданы, а когда вредят?" с одним production-сценарием и объясните, почему она влияет на результат.
- Назовите trade-offs: скорость изменений, надежность, стоимость сопровождения.
- Сформулируйте ключевой trade-off и объясните, как решение масштабируется на уровне системы.
Типичные ошибки
- Оптимизируют локально, ухудшая глобальную архитектуру.
- Не фиксируют критерии выбора решения и теряют историю trade-offs.
- Путают соседние концепции и не обозначают границы применимости выбранного подхода.
Follow-up вопросы
- Какое решение вы зафиксируете в ADR и какие альтернативы отвергнете?
- Как проверите, что архитектура выдержит рост команды и нагрузки?
- Какой trade-off на уровне архитектуры здесь самый критичный?
Что повторить
- Dependency map и границы ownership.
- Ключевые trade-offs и причины выбранного решения.
- Пройдите 2-3 связных вопроса в Банке вопросов и проверьте устойчивость ответа.
Связанные модули и карта
- Обучение: Frontend-архитектура
- Обучение: Frontend System Design
- Карта подготовки: Frontend System Design
3. Как управлять performance budget в продукте?
Теги: performance, budget, cwv, observability
Сложность: Senior
Короткий ответ
Performance budget - это численные пороги по ключевым метрикам и размеру ресурсов, которые контролируются автоматически в CI и в проде.
Что сказать на интервью (30-60 секунд)
- Где это применяется: В производительности интерфейса: рендер, загрузка ассетов, отзывчивость и стабильность UX.
- Главный риск: Неправильная реализация дает лишние ререндеры, рост LCP/TTI и деградацию пользовательского пути.
- Как проверяете решение: Снимаю baseline в профайлере/DevTools, применяю изменение и подтверждаю эффект по LCP/INP/CPU time.
Мини-пример
{
"budgets": [
{ "metric": "LCP", "threshold": 2500 },
{ "metric": "INP", "threshold": 200 }
]
}
Углубление (2-3 минуты)
- Свяжите тему "Как управлять performance budget в продукте?" с одним production-сценарием и объясните, почему она влияет на результат.
- Опишите влияние темы на user-centric метрики (
LCP,INP,CLS) и perceived performance. - Сформулируйте ключевой trade-off и объясните, как решение масштабируется на уровне системы.
Типичные ошибки
- Переусложняют мемоизацию там, где нет измеримой проблемы.
- Не проверяют сценарий на медленных устройствах и сетях.
- Путают соседние концепции и не обозначают границы применимости выбранного подхода.
Follow-up вопросы
- Как эта тема влияет на LCP/INP/CLS в реальном интерфейсе?
- Что выберете: простоту кода или оптимизацию, и по какому критерию?
- Какой trade-off на уровне архитектуры здесь самый критичный?
Что повторить
- Критический путь рендера и метрики
LCP/INP/CLS. - Границы
SSR/CSR/SSG/ISR(если применимо). - Пройдите 2-3 связных вопроса в Банке вопросов и проверьте устойчивость ответа.
Связанные модули и карта
- Обучение: Frontend-архитектура
- Обучение: Frontend System Design
- Карта подготовки: Frontend System Design
4. Как выбирать стратегию рендеринга (CSR/SSR/SSG/ISR)?
Теги: rendering, csr-ssr-ssg-isr, caching, strategy
Сложность: Senior
Короткий ответ
Стратегия рендеринга выбирается по типу контента, требованиям к SEO/персонализации, SLA по latency и стоимости эксплуатации.
Что сказать на интервью (30-60 секунд)
- Где это применяется: В производительности интерфейса: рендер, загрузка ассетов, отзывчивость и стабильность UX.
- Главный риск: Неправильная реализация дает лишние ререндеры, рост LCP/TTI и деградацию пользовательского пути.
- Как проверяете решение: Снимаю baseline в профайлере/DevTools, применяю изменение и подтверждаю эффект по LCP/INP/CPU time.
Мини-пример
// next.js idea
export const revalidate = 120;
Углубление (2-3 минуты)
- Свяжите тему "Как выбирать стратегию рендеринга (CSR/SSR/SSG/ISR)?" с одним production-сценарием и объясните, почему она влияет на результат.
- Опишите влияние темы на user-centric метрики (
LCP,INP,CLS) и perceived performance. - Сформулируйте ключевой trade-off и объясните, как решение масштабируется на уровне системы.
Типичные ошибки
- Переусложняют мемоизацию там, где нет измеримой проблемы.
- Не проверяют сценарий на медленных устройствах и сетях.
- Путают соседние концепции и не обозначают границы применимости выбранного подхода.
Follow-up вопросы
- Как эта тема влияет на LCP/INP/CLS в реальном интерфейсе?
- Как будете валидировать эффект на медленных устройствах?
- Какой trade-off на уровне архитектуры здесь самый критичный?
Что повторить
- Профилирование рендера до/после изменения.
- Критический путь рендера и метрики
LCP/INP/CLS. - Пройдите 2-3 связных вопроса в Банке вопросов и проверьте устойчивость ответа.
Связанные модули и карта
- Обучение: Frontend-архитектура
- Обучение: Frontend System Design
- Карта подготовки: Frontend System Design
5. Как строить state-management стратегию на Senior уровне?
Теги: state-management, architecture, scalability, ownership
Сложность: Senior
Короткий ответ
Нужно разделить server state, UI state и derived state, задать ownership и хранить состояние максимально близко к месту использования.
Что сказать на интервью (30-60 секунд)
- Где это применяется: В проектировании модулей, границ ответственности и поддерживаемой архитектуры продукта.
- Главный риск: Размытые границы повышают связанность, замедляют изменения и увеличивают цену регрессий.
- Как проверяете решение: Оформляю решение через ADR, затем проверяю ключевой trade-off на прототипе и эксплуатационных метриках.
Мини-пример
// server state -> query cache, ui state -> local/component
const { data } = useQuery(['profile', id], fetchProfile);
Углубление (2-3 минуты)
- Свяжите тему "Как строить state-management стратегию на Senior уровне?" с одним production-сценарием и объясните, почему она влияет на результат.
- Зафиксируйте границы ответственности между модулями и причины такого разделения.
- Сформулируйте ключевой trade-off и объясните, как решение масштабируется на уровне системы.
Типичные ошибки
- Оптимизируют локально, ухудшая глобальную архитектуру.
- Не фиксируют критерии выбора решения и теряют историю trade-offs.
- Путают соседние концепции и не обозначают границы применимости выбранного подхода.
Follow-up вопросы
- Как проверите, что архитектура выдержит рост команды и нагрузки?
- Какое решение вы зафиксируете в ADR и какие альтернативы отвергнете?
- Какой trade-off на уровне архитектуры здесь самый критичный?
Что повторить
- Ключевые trade-offs и причины выбранного решения.
- Артефакт
ADRили эквивалентный документ решения. - Пройдите 2-3 связных вопроса в Банке вопросов и проверьте устойчивость ответа.
Связанные модули и карта
- Обучение: Frontend-архитектура
- Обучение: Frontend System Design
- Карта подготовки: Frontend System Design
6. Как проектировать надежный data-fetching слой?
Теги: data-layer, reliability, api, resilience
Сложность: Senior
Короткий ответ
Надежный слой данных должен стандартизировать ретраи, таймауты, отмену, дедупликацию и единый формат ошибок для UI и мониторинга.
Что сказать на интервью (30-60 секунд)
- Где это применяется: В архитектурных решениях и технической стратегии команды на уровне продукта.
- Главный риск: Архитектурный долг накапливается, команда теряет предсказуемость поставки и качество релизов.
- Как проверяете решение: Прогоняю нагрузочный кейс, фиксирую лимиты (timeout/concurrency/retry) и проверяю стабильность сервиса.
Мини-пример
const api = createApiClient({ timeoutMs: 8000, retries: 2 });
Углубление (2-3 минуты)
- Свяжите тему "Как проектировать надежный data-fetching слой?" с одним production-сценарием и объясните, почему она влияет на результат.
- Опишите границы request path и вынос тяжелых операций в фон.
- Сформулируйте ключевой trade-off и объясните, как решение масштабируется на уровне системы.
Типичные ошибки
- Держат тяжелую обработку в синхронном request path.
- Не ограничивают ресурсы (конкурентность, очередь, таймауты).
- Путают соседние концепции и не обозначают границы применимости выбранного подхода.
Follow-up вопросы
- Какие метрики покажут деградацию раньше инцидента?
- Что вынесете в фон, чтобы не блокировать critical path?
- Какой trade-off на уровне архитектуры здесь самый критичный?
Что повторить
- Границы
Event Loop/I-O/CPU и backpressure. - Runbook деградации внешней зависимости.
- Пройдите 2-3 связных вопроса в Банке вопросов и проверьте устойчивость ответа.
Связанные модули и карта
- Обучение: Frontend-архитектура
- Обучение: Frontend System Design
- Карта подготовки: Frontend System Design
7. Какие риски у optimistic updates и как их контролировать?
Теги: optimistic-update, consistency, rollback, ux
Сложность: Senior
Короткий ответ
Оптимистичные обновления ускоряют UX, но без rollback, idempotency и обработки конфликтов приводят к рассинхронизации данных.
Что сказать на интервью (30-60 секунд)
- Где это применяется: В архитектурных решениях и технической стратегии команды на уровне продукта.
- Главный риск: Архитектурный долг накапливается, команда теряет предсказуемость поставки и качество релизов.
- Как проверяете решение: Сравниваю lead time и change failure rate до/после изменения процесса и фиксирую результат в runbook.
Мини-пример
onMutate: async (payload) => {
const prev = queryClient.getQueryData(['items']);
queryClient.setQueryData(['items'], optimisticPatch(prev, payload));
return { prev };
}
Углубление (2-3 минуты)
- Свяжите тему "Какие риски у optimistic updates и как их контролировать?" с одним production-сценарием и объясните, почему она влияет на результат.
- Опишите минимальные quality gates и критерии rollback.
- Сформулируйте ключевой trade-off и объясните, как решение масштабируется на уровне системы.
Типичные ошибки
- Добавляют проверки в CI без учета времени обратной связи команды.
- Деплоят без заранее описанного rollback-плана.
- Путают соседние концепции и не обозначают границы применимости выбранного подхода.
Follow-up вопросы
- Как измерите влияние изменения на lead time и CFR?
- Какой сигнал в мониторинге станет trigger для rollback?
- Какой trade-off на уровне архитектуры здесь самый критичный?
Что повторить
- Структуру CI/CD и обязательные quality gates.
- Метрики процесса: lead time, CFR, flaky rate.
- Пройдите 2-3 связных вопроса в Банке вопросов и проверьте устойчивость ответа.
Связанные модули и карта
- Обучение: Frontend-архитектура
- Обучение: Frontend System Design
- Карта подготовки: Frontend System Design
8. Как подходить к разработке Design System?
Теги: design-system, platform, versioning, governance
Сложность: Senior
Короткий ответ
Design System - это продукт с API, версионированием, токенами, governance и метриками внедрения, а не набор разрозненных компонентов.
Что сказать на интервью (30-60 секунд)
- Где это применяется: В архитектурных решениях и технической стратегии команды на уровне продукта.
- Главный риск: Архитектурный долг накапливается, команда теряет предсказуемость поставки и качество релизов.
- Как проверяете решение: Оформляю решение через ADR, затем проверяю ключевой trade-off на прототипе и эксплуатационных метриках.
Мини-пример
export const Button = createComponent<ButtonProps>('Button', tokens.button);
Углубление (2-3 минуты)
- Свяжите тему "Как подходить к разработке Design System?" с одним production-сценарием и объясните, почему она влияет на результат.
- Опишите, какие решения документируете в
ADRи почему. - Сформулируйте ключевой trade-off и объясните, как решение масштабируется на уровне системы.
Типичные ошибки
- Оптимизируют локально, ухудшая глобальную архитектуру.
- Не фиксируют критерии выбора решения и теряют историю trade-offs.
- Путают соседние концепции и не обозначают границы применимости выбранного подхода.
Follow-up вопросы
- Как проверите, что архитектура выдержит рост команды и нагрузки?
- Где проходит boundary между модулями в этом кейсе?
- Какой trade-off на уровне архитектуры здесь самый критичный?
Что повторить
- Dependency map и границы ownership.
- Артефакт
ADRили эквивалентный документ решения. - Пройдите 2-3 связных вопроса в Банке вопросов и проверьте устойчивость ответа.
Связанные модули и карта
- Обучение: Frontend-архитектура
- Обучение: Frontend System Design
- Карта подготовки: Frontend System Design
9. Как встроить accessibility в процесс разработки?
Теги: accessibility, process, ci, quality
Сложность: Senior
Короткий ответ
Accessibility должна быть частью Definition of Done и CI-процесса, а не ручной проверкой в конце релиза.
Что сказать на интервью (30-60 секунд)
- Где это применяется: В архитектурных решениях и технической стратегии команды на уровне продукта.
- Главный риск: Архитектурный долг накапливается, команда теряет предсказуемость поставки и качество релизов.
- Как проверяете решение: Проверяю на двух контрпримерах (где работает/где ломается) и закрепляю мини-задачей в песочнице.
Мини-пример
expect(await axe(container)).toHaveNoViolations();
Углубление (2-3 минуты)
- Свяжите тему "Как встроить accessibility в процесс разработки?" с одним production-сценарием и объясните, почему она влияет на результат.
- Назовите признак, по которому поймете, что решение сработало в реальном проекте.
- Сформулируйте ключевой trade-off и объясните, как решение масштабируется на уровне системы.
Типичные ошибки
- Путают терминологию и не фиксируют критерий проверки.
- Не проговаривают ограничения и edge-cases.
- Путают соседние концепции и не обозначают границы применимости выбранного подхода.
Follow-up вопросы
- Какой минимальный тест докажет корректность подхода?
- Где граница применимости этого решения?
- Какой trade-off на уровне архитектуры здесь самый критичный?
Что повторить
- Базовые определения темы и 2 контрпримера (где работает и где ломается).
- Связанный вопрос из Банка вопросов для закрепления.
- Пройдите 2-3 связных вопроса в Банке вопросов и проверьте устойчивость ответа.
Связанные модули и карта
- Обучение: Frontend-архитектура
- Обучение: Frontend System Design
- Карта подготовки: Frontend System Design
10. Что входит в frontend observability?
Теги: observability, monitoring, tracing, incident-response
Сложность: Senior
Короткий ответ
Observability включает метрики, логи, ошибки, трассировку и runbooks, чтобы быстро находить и устранять причины деградаций.
Что сказать на интервью (30-60 секунд)
- Где это применяется: В архитектурных решениях и технической стратегии команды на уровне продукта.
- Главный риск: Архитектурный долг накапливается, команда теряет предсказуемость поставки и качество релизов.
- Как проверяете решение: Проверяю на двух контрпримерах (где работает/где ломается) и закрепляю мини-задачей в песочнице.
Мини-пример
captureException(error, { tags: { release, route, feature }, extra: { traceId } });
Углубление (2-3 минуты)
- Свяжите тему "Что входит в frontend observability?" с одним production-сценарием и объясните, почему она влияет на результат.
- Назовите признак, по которому поймете, что решение сработало в реальном проекте.
- Сформулируйте ключевой trade-off и объясните, как решение масштабируется на уровне системы.
Типичные ошибки
- Дают определение, но не объясняют, как это использовать в рабочем коде.
- Не проговаривают ограничения и edge-cases.
- Путают соседние концепции и не обозначают границы применимости выбранного подхода.
Follow-up вопросы
- Как поведет себя решение на edge-case и почему?
- Какой минимальный тест докажет корректность подхода?
- Какой trade-off на уровне архитектуры здесь самый критичный?
Что повторить
- Связанный вопрос из Банка вопросов для закрепления.
- Базовые определения темы и 2 контрпримера (где работает и где ломается).
- Пройдите 2-3 связных вопроса в Банке вопросов и проверьте устойчивость ответа.
Связанные модули и карта
- Обучение: Frontend-архитектура
- Обучение: Frontend System Design
- Карта подготовки: Frontend System Design
11. Какие ключевые security-практики во фронтенде?
Теги: security, xss-csrf-csp, auth, threat-model
Сложность: Senior
Короткий ответ
Базовый набор: защита от XSS/CSRF, безопасное хранение сессии, CSP, контроль third-party скриптов и регулярный аудит зависимостей.
Что сказать на интервью (30-60 секунд)
- Где это применяется: В авторизации, хранении данных и безопасной работе клиента с API.
- Главный риск: Ошибки здесь приводят к уязвимостям, утечкам данных и инцидентам безопасности.
- Как проверяете решение: Проверяю threat model на конкретном endpoint, прогоняю негативные кейсы и сверяю audit-логи до/после.
Мини-пример
Content-Security-Policy: default-src 'self'; script-src 'self' 'nonce-...'
Углубление (2-3 минуты)
- Свяжите тему "Какие ключевые security-практики во фронтенде?" с одним production-сценарием и объясните, почему она влияет на результат.
- Опишите, где контроль должен стоять на сервере, а где на клиенте.
- Сформулируйте ключевой trade-off и объясните, как решение масштабируется на уровне системы.
Типичные ошибки
- Ориентируются только на client-side защиту без серверной проверки.
- Путают CORS, аутентификацию и авторизацию как один механизм.
- Путают соседние концепции и не обозначают границы применимости выбранного подхода.
Follow-up вопросы
- Какой abuse-case вы проверите первым?
- Какие данные/операции требуют серверной валидации независимо от клиента?
- Какой trade-off на уровне архитектуры здесь самый критичный?
Что повторить
- Негативные тесты на abuse-сценарии.
- Разницу между AuthN/AuthZ, CORS, CSRF и XSS.
- Пройдите 2-3 связных вопроса в Банке вопросов и проверьте устойчивость ответа.
Связанные модули и карта
- Обучение: Frontend-архитектура
- Обучение: Frontend System Design
- Карта подготовки: Frontend System Design
12. Как выстраивать release strategy на фронтенде?
Теги: release, feature-flags, canary, rollback
Сложность: Senior
Короткий ответ
Release strategy должна обеспечивать управляемый rollout, быстрый rollback и контроль качества через метрики.
Что сказать на интервью (30-60 секунд)
- Где это применяется: В архитектурных решениях и технической стратегии команды на уровне продукта.
- Главный риск: Архитектурный долг накапливается, команда теряет предсказуемость поставки и качество релизов.
- Как проверяете решение: Проверяю pipeline на тестовом релизе: время, стабильность и rollback-сценарий с измеримыми критериями.
Мини-пример
if (flags.newCheckout && canaryBucket <= 10) {
enableNewCheckout();
}
Углубление (2-3 минуты)
- Свяжите тему "Как выстраивать release strategy на фронтенде?" с одним production-сценарием и объясните, почему она влияет на результат.
- Покажите, как решение сокращает lead time или снижает change failure rate.
- Сформулируйте ключевой trade-off и объясните, как решение масштабируется на уровне системы.
Типичные ошибки
- Игнорируют flaky-тесты, из-за чего quality signal теряет доверие.
- Деплоят без заранее описанного rollback-плана.
- Путают соседние концепции и не обозначают границы применимости выбранного подхода.
Follow-up вопросы
- Как измерите влияние изменения на lead time и CFR?
- Какие quality gates обязательны перед релизом этой зоны?
- Какой trade-off на уровне архитектуры здесь самый критичный?
Что повторить
- План rollout/rollback и критерии остановки релиза.
- Метрики процесса: lead time, CFR, flaky rate.
- Пройдите 2-3 связных вопроса в Банке вопросов и проверьте устойчивость ответа.
Связанные модули и карта
- Обучение: Frontend-архитектура
- Обучение: Frontend System Design
- Карта подготовки: Frontend System Design
13. Что такое error budget и зачем он фронтенду?
Теги: reliability, slo, error-budget, governance
Сложность: Senior
Короткий ответ
Error budget - это допустимый объем деградаций относительно SLO, который помогает балансировать скорость доставки и стабильность.
Что сказать на интервью (30-60 секунд)
- Где это применяется: В архитектурных решениях и технической стратегии команды на уровне продукта.
- Главный риск: Архитектурный долг накапливается, команда теряет предсказуемость поставки и качество релизов.
- Как проверяете решение: Провожу design review по критериям (масштаб, надежность, сопровождение) и валидирую через spike/POC.
Мини-пример
SLO: 99.9% successful checkout interactions / 30 days
Углубление (2-3 минуты)
- Свяжите тему "Что такое error budget и зачем он фронтенду?" с одним production-сценарием и объясните, почему она влияет на результат.
- Назовите trade-offs: скорость изменений, надежность, стоимость сопровождения.
- Сформулируйте ключевой trade-off и объясните, как решение масштабируется на уровне системы.
Типичные ошибки
- Оптимизируют локально, ухудшая глобальную архитектуру.
- Не фиксируют критерии выбора решения и теряют историю trade-offs.
- Путают соседние концепции и не обозначают границы применимости выбранного подхода.
Follow-up вопросы
- Как проверите, что архитектура выдержит рост команды и нагрузки?
- Какое решение вы зафиксируете в ADR и какие альтернативы отвергнете?
- Какой trade-off на уровне архитектуры здесь самый критичный?
Что повторить
- Артефакт
ADRили эквивалентный документ решения. - Ключевые trade-offs и причины выбранного решения.
- Пройдите 2-3 связных вопроса в Банке вопросов и проверьте устойчивость ответа.
Связанные модули и карта
- Обучение: Frontend-архитектура
- Обучение: Frontend System Design
- Карта подготовки: Frontend System Design
14. Как рендерить очень большие списки?
Теги: performance, virtualization, ux, accessibility
Сложность: Senior
Короткий ответ
Комбинировать виртуализацию, пагинацию и оптимизацию рендера с учетом доступности и UX-навигации.
Что сказать на интервью (30-60 секунд)
- Где это применяется: В производительности интерфейса: рендер, загрузка ассетов, отзывчивость и стабильность UX.
- Главный риск: Неправильная реализация дает лишние ререндеры, рост LCP/TTI и деградацию пользовательского пути.
- Как проверяете решение: Проверяю целевой сценарий под slow network/CPU throttling и подтверждаю улучшение цифрами, а не ощущением.
Мини-пример
<VirtualList itemCount={rows.length} itemSize={40} renderItem={Row} />
Углубление (2-3 минуты)
- Свяжите тему "Как рендерить очень большие списки?" с одним production-сценарием и объясните, почему она влияет на результат.
- Покажите, как изменение влияет на рендер и стоимость JavaScript.
- Сформулируйте ключевой trade-off и объясните, как решение масштабируется на уровне системы.
Типичные ошибки
- Не проверяют сценарий на медленных устройствах и сетях.
- Переусложняют мемоизацию там, где нет измеримой проблемы.
- Путают соседние концепции и не обозначают границы применимости выбранного подхода.
Follow-up вопросы
- Как будете валидировать эффект на медленных устройствах?
- Как эта тема влияет на LCP/INP/CLS в реальном интерфейсе?
- Какой trade-off на уровне архитектуры здесь самый критичный?
Что повторить
- Профилирование рендера до/после изменения.
- Границы
SSR/CSR/SSG/ISR(если применимо). - Пройдите 2-3 связных вопроса в Банке вопросов и проверьте устойчивость ответа.
Связанные модули и карта
- Обучение: Frontend-архитектура
- Обучение: Frontend System Design
- Карта подготовки: Frontend System Design
15. Когда использовать Web Workers?
Теги: web-workers, concurrency, performance, architecture
Сложность: Senior
Короткий ответ
Когда CPU-heavy вычисления мешают интерактивности main thread и их можно выполнить без прямого доступа к DOM.
Что сказать на интервью (30-60 секунд)
- Где это применяется: В производительности интерфейса: рендер, загрузка ассетов, отзывчивость и стабильность UX.
- Главный риск: Неправильная реализация дает лишние ререндеры, рост LCP/TTI и деградацию пользовательского пути.
- Как проверяете решение: Оформляю решение через ADR, затем проверяю ключевой trade-off на прототипе и эксплуатационных метриках.
Мини-пример
worker.postMessage(buffer, [buffer]); // transferable
Углубление (2-3 минуты)
- Свяжите тему "Когда использовать Web Workers?" с одним production-сценарием и объясните, почему она влияет на результат.
- Назовите trade-offs: скорость изменений, надежность, стоимость сопровождения.
- Сформулируйте ключевой trade-off и объясните, как решение масштабируется на уровне системы.
Типичные ошибки
- Смешивают границы модулей и получают высокий coupling.
- Оптимизируют локально, ухудшая глобальную архитектуру.
- Путают соседние концепции и не обозначают границы применимости выбранного подхода.
Follow-up вопросы
- Где проходит boundary между модулями в этом кейсе?
- Какое решение вы зафиксируете в ADR и какие альтернативы отвергнете?
- Какой trade-off на уровне архитектуры здесь самый критичный?
Что повторить
- Артефакт
ADRили эквивалентный документ решения. - Dependency map и границы ownership.
- Пройдите 2-3 связных вопроса в Банке вопросов и проверьте устойчивость ответа.
Связанные модули и карта
- Обучение: Frontend-архитектура
- Обучение: Frontend System Design
- Карта подготовки: Frontend System Design
16. Какие quality gates должны быть в CI для фронтенда?
Теги: ci-cd, quality-gates, testing, delivery
Сложность: Senior
Короткий ответ
CI должен комбинировать быстрые обязательные проверки в PR и расширенные прогоны по расписанию, сохраняя быстрый feedback loop.
Что сказать на интервью (30-60 секунд)
- Где это применяется: В архитектурных решениях и технической стратегии команды на уровне продукта.
- Главный риск: Архитектурный долг накапливается, команда теряет предсказуемость поставки и качество релизов.
- Как проверяете решение: Сравниваю lead time и change failure rate до/после изменения процесса и фиксирую результат в runbook.
Мини-пример
pr: [lint, typecheck, unit, smoke-e2e]
nightly: [full-e2e, performance, security-scan]
Углубление (2-3 минуты)
- Свяжите тему "Какие quality gates должны быть в CI для фронтенда?" с одним production-сценарием и объясните, почему она влияет на результат.
- Покажите, как решение сокращает lead time или снижает change failure rate.
- Сформулируйте ключевой trade-off и объясните, как решение масштабируется на уровне системы.
Типичные ошибки
- Добавляют проверки в CI без учета времени обратной связи команды.
- Деплоят без заранее описанного rollback-плана.
- Путают соседние концепции и не обозначают границы применимости выбранного подхода.
Follow-up вопросы
- Как измерите влияние изменения на lead time и CFR?
- Какие quality gates обязательны перед релизом этой зоны?
- Какой trade-off на уровне архитектуры здесь самый критичный?
Что повторить
- План rollout/rollback и критерии остановки релиза.
- Метрики процесса: lead time, CFR, flaky rate.
- Пройдите 2-3 связных вопроса в Банке вопросов и проверьте устойчивость ответа.
Связанные модули и карта
- Обучение: Frontend-архитектура
- Обучение: Frontend System Design
- Карта подготовки: Frontend System Design
17. Как выстраивать тестовую стратегию фронтенда?
Теги: testing, strategy, risk-based, quality
Сложность: Senior
Короткий ответ
Тестирование должно быть risk-based: защищать критичные пользовательские потоки минимально достаточным набором unit/integration/e2e.
Что сказать на интервью (30-60 секунд)
- Где это применяется: В архитектурных решениях и технической стратегии команды на уровне продукта.
- Главный риск: Архитектурный долг накапливается, команда теряет предсказуемость поставки и качество релизов.
- Как проверяете решение: Собираю короткий воспроизводимый пример, прогоняю edge-case и объясняю результат без подсказок.
Мини-пример
Smoke e2e: login -> search -> checkout
Integration: pricing rules
Unit: pure formatters/parsers
Углубление (2-3 минуты)
- Свяжите тему "Как выстраивать тестовую стратегию фронтенда?" с одним production-сценарием и объясните, почему она влияет на результат.
- Назовите признак, по которому поймете, что решение сработало в реальном проекте.
- Сформулируйте ключевой trade-off и объясните, как решение масштабируется на уровне системы.
Типичные ошибки
- Не проговаривают ограничения и edge-cases.
- Путают терминологию и не фиксируют критерий проверки.
- Путают соседние концепции и не обозначают границы применимости выбранного подхода.
Follow-up вопросы
- Какой минимальный тест докажет корректность подхода?
- Где граница применимости этого решения?
- Какой trade-off на уровне архитектуры здесь самый критичный?
Что повторить
- Базовые определения темы и 2 контрпримера (где работает и где ломается).
- Мини-код, который воспроизводит поведение и проверяется за 1-2 минуты.
- Пройдите 2-3 связных вопроса в Банке вопросов и проверьте устойчивость ответа.
Связанные модули и карта
- Обучение: Frontend-архитектура
- Обучение: Frontend System Design
- Карта подготовки: Frontend System Design
18. Как работать с эволюцией API-контрактов?
Теги: api-contracts, evolution, compatibility, versioning
Сложность: Senior
Короткий ответ
Эволюция контрактов должна быть управляемой: schema как source of truth, окно деприкации и автоматическая проверка совместимости.
Что сказать на интервью (30-60 секунд)
- Где это применяется: В архитектурных решениях и технической стратегии команды на уровне продукта.
- Главный риск: Архитектурный долг накапливается, команда теряет предсказуемость поставки и качество релизов.
- Как проверяете решение: Проверяю сценарий под пиковым трафиком: latency, saturation и поведение при деградации зависимости.
Мини-пример
OpenAPI deprecation marker:
User:
properties:
legacyField:
deprecated: true
Углубление (2-3 минуты)
- Свяжите тему "Как работать с эволюцией API-контрактов?" с одним production-сценарием и объясните, почему она влияет на результат.
- Разберите поведение системы под пиковым трафиком и деградацией внешних зависимостей.
- Сформулируйте ключевой trade-off и объясните, как решение масштабируется на уровне системы.
Типичные ошибки
- Запускают изменения без наблюдаемости и runbook.
- Не ограничивают ресурсы (конкурентность, очередь, таймауты).
- Путают соседние концепции и не обозначают границы применимости выбранного подхода.
Follow-up вопросы
- Какие метрики покажут деградацию раньше инцидента?
- Что вынесете в фон, чтобы не блокировать critical path?
- Какой trade-off на уровне архитектуры здесь самый критичный?
Что повторить
- Границы
Event Loop/I-O/CPU и backpressure. - Runbook деградации внешней зависимости.
- Пройдите 2-3 связных вопроса в Банке вопросов и проверьте устойчивость ответа.
Связанные модули и карта
- Обучение: Frontend-архитектура
- Обучение: Frontend System Design
- Карта подготовки: Frontend System Design
19. Как проводить postmortem после фронтенд-инцидента?
Теги: incident-management, postmortem, reliability, process
Сложность: Senior
Короткий ответ
Postmortem должен быть blameless, с root-cause анализом и измеримыми action items с владельцами и сроками.
Что сказать на интервью (30-60 секунд)
- Где это применяется: В архитектурных решениях и технической стратегии команды на уровне продукта.
- Главный риск: Архитектурный долг накапливается, команда теряет предсказуемость поставки и качество релизов.
- Как проверяете решение: Делаю ручную проверку сценария + мини-тест, чтобы подтвердить поведение в реальном коде.
Мини-пример
Incident -> Timeline -> Root causes -> Actions(owner, due date, KPI)
Углубление (2-3 минуты)
- Свяжите тему "Как проводить postmortem после фронтенд-инцидента?" с одним production-сценарием и объясните, почему она влияет на результат.
- Разложите ответ на «механика -> применение -> ограничение», чтобы показать не только теорию, но и практику.
- Сформулируйте ключевой trade-off и объясните, как решение масштабируется на уровне системы.
Типичные ошибки
- Дают определение, но не объясняют, как это использовать в рабочем коде.
- Не проговаривают ограничения и edge-cases.
- Путают соседние концепции и не обозначают границы применимости выбранного подхода.
Follow-up вопросы
- Как поведет себя решение на edge-case и почему?
- Какой минимальный тест докажет корректность подхода?
- Какой trade-off на уровне архитектуры здесь самый критичный?
Что повторить
- Связанный вопрос из Банка вопросов для закрепления.
- Базовые определения темы и 2 контрпримера (где работает и где ломается).
- Пройдите 2-3 связных вопроса в Банке вопросов и проверьте устойчивость ответа.
Связанные модули и карта
- Обучение: Frontend-архитектура
- Обучение: Frontend System Design
- Карта подготовки: Frontend System Design
20. Что ожидается от Senior в техническом лидерстве?
Теги: leadership, architecture, mentoring, strategy
Сложность: Senior
Короткий ответ
Senior отвечает не только за код, но и за качество инженерных решений, развитие команды и влияние на продуктовые результаты.
Что сказать на интервью (30-60 секунд)
- Где это применяется: В проектировании модулей, границ ответственности и поддерживаемой архитектуры продукта.
- Главный риск: Размытые границы повышают связанность, замедляют изменения и увеличивают цену регрессий.
- Как проверяете решение: Сверяю dependency map и проверяю, что изменения не ломают критический пользовательский поток.
Мини-пример
Initiative -> Hypothesis -> Delivery plan -> Metrics impact -> Retrospective
Куда дальше
- Вернитесь в модуль: Frontend System Design.
- Сверьтесь с картой темы: Frontend System Design.
- Продолжайте по маршруту: Senior трек.
- Закрепите один ответ на практике в Песочнице.
Углубление (2-3 минуты)
- Свяжите тему "Что ожидается от Senior в техническом лидерстве?" с одним production-сценарием и объясните, почему она влияет на результат.
- Назовите trade-offs: скорость изменений, надежность, стоимость сопровождения.
- Сформулируйте ключевой trade-off и объясните, как решение масштабируется на уровне системы.
Типичные ошибки
- Не фиксируют критерии выбора решения и теряют историю trade-offs.
- Смешивают границы модулей и получают высокий coupling.
- Путают соседние концепции и не обозначают границы применимости выбранного подхода.
Follow-up вопросы
- Где проходит boundary между модулями в этом кейсе?
- Какое решение вы зафиксируете в ADR и какие альтернативы отвергнете?
- Какой trade-off на уровне архитектуры здесь самый критичный?
Что повторить
- Артефакт
ADRили эквивалентный документ решения. - Ключевые trade-offs и причины выбранного решения.
- Пройдите 2-3 связных вопроса в Банке вопросов и проверьте устойчивость ответа.