Performance
Производительность — это сочетание технической скорости и воспринимаемой скорости (Perceived Performance). Цель — быстрый, отзывчивый и предсказуемый интерфейс.
Материал к ознакомлению
- Building Large Scale Web Apps
- Analyze Runtime Performance
- Layout Thrashing
- Core Web Vitals: LCP, INP, CLS
- CrUX Vis
- Resource Hints
- Perceived Performance
- React:
useTransition,useOptimistic - Animations: FLIP
Общие принципы
MUST
- UI дает немедленную обратную связь на действие пользователя (instant feedback).
- Загрузка данных и UI прогрессивная, а не блокирующая.
- Визуальные изменения плавные и предсказуемые.
- При возможности используется Optimistic UI.
SHOULD
- Использовать skeleton/placeholder вместо пустых состояний.
- Разделять тяжелые операции и переносить их из main thread.
FORBIDDEN
- Оставлять действие пользователя без визуального отклика.
- Блокировать интерфейс без явного состояния загрузки.
- Выполнять тяжелые операции синхронно в основном потоке.
Метрики
Основной ориентир — Core Web Vitals. Метрики используются для выявления проблем и регрессий, а не как самоцель.
Разделы документации
- Метрики и измерения — CWV, диагностика, источники данных
- Code Splitting и entry points — маршруты, универсальный код
- Ресурсы — изображения, шрифты, resource hints, сжатие
- Perceived Performance — optimistic UI, transition, прогрессивные состояния
- Анимации и layout — GPU, FLIP, защита от layout thrashing
- Инструменты и библиотеки — анализ, виртуализация, lazy-load
- Code Review и автоматизация — чек-листы и проверки