Андрей.
← На главную

HornyBox · Разбор проекта

Производительность Next.js за пределами интерфейса

Аудит приложения, кэширование SSR-ответов и работа с инфраструктурой e-commerce платформы.

Контекст

После перехода проекта от внешней команды к внутренней разработке требовалось разобраться в существующей кодовой базе и составить план рефакторинга. Отдельной задачей была производительность Next.js-приложения с серверным рендерингом.

Мой вклад

Я провёл аудит приложения и выстроил план рефакторинга. В клиентской части внедрил Flux-архитектуру с Redux и вынес бизнес-логику в middleware.

Для работы с нагрузкой написал Node.js-прокси, кэширующий готовые SSR-ответы перед Next.js. Также работал над пропускной способностью бэкенд-инфраструктуры: Redis, кластеризацией и оптимизацией Docker-сети.

Два отдельных направления

Кэширование готового ответа и оптимизация бэкенда решали разные задачи. Первый механизм позволял повторно использовать результат серверного рендеринга. Второе направление касалось обработки запросов в серверной части и её инфраструктуре.

Разделять эти изменения важно и при оценке результата: пропускная способность слоя выдачи страниц не равна пропускной способности API.

Проверка и эксплуатация

В проекте я настраивал CI/CD, feature flags, Sentry и Loki, unit- и интеграционные тесты. Этот опыт связал для меня изменения в приложении с проверкой и эксплуатацией системы.

Результат

В рамках проекта я занимался производительностью на нескольких уровнях: от архитектуры фронтенда до SSR-кэширования и серверной инфраструктуры. Кейс показывает, как моя работа во фронтенде расширилась до задач на стыке приложения и эксплуатации.

Точные показатели нагрузки будут добавлены после уточнения сценария и условий измерения.