О нас Руководства Проекты Контакты
Админка
пожалуйста подождите

Клиент и контекст

Растущая платформа-маркетплейс имела backend на Laravel и front-end на базе Vue. Со временем производительность и сопровождаемость ухудшились:

  • Изначальная архитектура и зависимости были разработаны несколько лет назад.
  • Сборки front-end стали огромными и медленными.
  • Время загрузки страниц было высоким, а SEO ухудшалось.

Клиент хотел продолжать добавлять функциональность, но платформе требовалось серьёзное техническое обновление.

Проблемы

  • Медленный front-end: полная загрузка страницы занимала около 6,5 секунды, что влияло на пользовательский опыт и конверсии.
  • Чрезмерно большой bundle: JavaScript bundle вырос до примерно 1,6 GB, со значительным временем сборки и множеством устаревших зависимостей.
  • Устаревший стек: проект оставался на Vue 2 с toolchain на базе Webpack.
  • Тяжёлые фоновые задачи: некоторые запланированные задачи базы данных выполнялись по несколько минут.
  • Безопасность и сопровождение: уязвимости npm-зависимостей накапливались со временем.

Что я сделал

1. Миграция Vue 2 → Vue 3 и модернизация pipeline сборки

  • Спланировал и реализовал поэтапную миграцию с Vue 2 на Vue 3, сохраняя работоспособность приложения на всём протяжении.
  • Заменил старую сборку на базе Webpack на современный toolchain на базе esbuild.
  • Удалил неиспользуемые зависимости и при необходимости разделил bundles.

Эффект:

  • Размер bundle уменьшился с ~1,6 GB до ~300 MB.
  • Время сборки улучшилось примерно в 3 раза.
  • Количество уязвимостей npm снизилось до нуля после обновления и очистки зависимостей.

2. Улучшения производительности и PageSpeed

  • Выполнил профилирование front-end и backend, чтобы выявить основные узкие места, влияющие на время загрузки.
  • Оптимизировал критические пути рендеринга, сократил лишние запросы и улучшил кеширование.
  • Устранил CLS (Cumulative Layout Shift) и другие проблемы Web Vitals.
  • Исправил проблемы SSR (server-side rendering), которые ухудшали SEO и производительность первичного рендера.

Эффект:

  • Полное время загрузки страницы улучшилось с ~6,5 секунды до примерно 1 секунды на ключевых представлениях.
  • Оценки PageSpeed существенно выросли, улучшив и SEO, и пользовательский опыт.

3. Оптимизация backend и базы данных

  • Проанализировал тяжёлые SQL jobs и длительно выполняющиеся запланированные задачи.
  • Переписал запросы, добавил индексы и улучшил дизайн jobs, чтобы снизить нагрузку и конкуренцию за ресурсы.

Эффект:

  • Некоторые jobs сократились с выполнения в течение минут до завершения за секунды, высвободив ресурсы и снизив операционные риски.

4. Разработка функциональности: платежи, auth, стриминг

Параллельно с улучшением производительности я также реализовал и расширил ключевые функции маркетплейса:

  • Настройка и интеграция Stripe Connect для многопартийных платежей.
  • Social logins и улучшения аутентификации.
  • Функции, связанные с live/streaming interactions (чат/коммуникации) на платформе.

Это обеспечило, что техническая модернизация была не просто внутренним рефакторингом, а также дала заметную продуктовую ценность.

Результаты

  • Маркетплейс стал значительно быстрее и приятнее в использовании.
  • Front-end стек был приведён к современному, сопровождаемому состоянию с Vue 3 и эффективным pipeline сборки.
  • Риски безопасности и сопровождения из-за устаревших зависимостей и уязвимостей были существенно снижены.
  • Команда смогла двигаться дальше с новой функциональностью на прочной технической базе, вместо того чтобы постоянно «бороться» с платформой.

Технологии и обязанности

  • Роль: Senior full-stack engineer / лидер модернизации
  • Технологии: Laravel, Vue 2→3, esbuild, npm, SQL, Stripe Connect, SSR, Web Vitals, background jobs
  • Объём работ: архитектура, практическая реализация, настройка производительности, рефакторинг, разработка функциональности и техническое сопровождение

Если ваш продукт на Laravel/Vue/React работает медленно, хрупок и его сложно развивать, я могу помочь вам модернизировать его шаг за шагом, продолжая при этом поставлять новую функциональность.

Назад ко всем кейсам

 
 
 
Языки
Темы
Copyright © 1999 — 2026
Зетка Интерактив