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, правила зависимостей и предсказуемую эволюцию системы, а не только структуру папок.