Задача
Необходимо провести аудит производительности и реализовать меры по ускорению загрузки веб-сайта. В основе проекта лежит стек Python и Django. От вас ждут системного подхода к выявлению и устранению проблем, снижающих скорость работы ресурса.
Ключевые требования к работе
- Провести профилирование кода и запросов к базе данных (например, с помощью django-debug-toolbar, silk или аналогичных инструментов).
- Оптимизировать количество и сложность SQL-запросов (исправить проблему N+1, добавить select_related/prefetch_related).
- Настроить и внедрить кэширование: на уровне бэкенда (кэширование данных, результатов сложных вычислений), фронтенда (кэш-заголовки), а также использование кэширования шаблонов.
- Минимизировать и оптимизировать подключение статических файлов (CSS, JavaScript, изображения) - сжатие, слияние, использование современных форматов (WebP, AVIF) и правильная настройка CDN.
- Оптимизировать работу с медиафайлами и загрузкой изображений.
- По возможности реализовать асинхронные задачи (Celery/Redis) для тяжелых и фоновых операций.
- Настроить Gunicorn/Uvicorn и nginx для оптимальной работы в продакшене.
Ожидаемый результат
В результате работы сайт должен демонстрировать высокую скорость загрузки (желательно соответствие показателям Google PageSpeed Insights, Lighthouse - более 90 баллов для динамических страниц и более 95 для статики). Все изменения должны быть безопасными и стабильными.
Важно для исполнителя
Опыт работы с Django, инструментами для профилирования и кэширования обязателен. Пожалуйста, при отклике кратко опишите ваш опыт в схожих задачах, а также предложите план действий и сроки.