Сайт fillincode.ru использует файлы cookies и сервисы сбора технических данных посетителей для обеспечения работоспособности и улучшения качества обслуживания. Продолжая использовать наш сайт, вы автоматически соглашаетесь с использованием данных технологий. Кликните «Принять и закрыть», чтобы согласиться с использованием «cookies» и больше не отображать это предупреждение.
8 (800) 770-07-60
Заполнить бриф →

BEE-online рефакторинг проекта

Онлайн сервис для поиска партнеров в сфере легкой промышленности.

Масштабный рефакторинг многопользовательской платформы с личными кабинетами, монетизацией и телефонией

Провели масштабный рефакторинг backend и frontend частей проекта. Полностью пересобрали архитектуру контроллеров, внедрили сервисный слой, стандартизировали подход к валидации и форматированию ответов, оптимизировали работу с базой данных, добавили OpenAPI-документацию и улучшили безопасность.

Аналитика Разработка Интеграции

Клиент

Bee-online

Язык программирования

PHP, JS, фреймворк: Laravel 11, Nuxt 3

База данных

MySQL

Контейнеризация

Docker

Веб-сервер

Nginx

Сроки реализации проекта

Август 2024 - Апрель 2025

Аналитика Разработка Интеграции

Проблема

При развитии платформа столкнулась с рядом проблем

01

Проект развивался, добавлялись новые функции, что-то устарело, копился технический долг

02

Добавление новых функций стало затруднительно

03

Переход на новые версии Laravel и PHP был практически невозможен из-за несовместимости новых версий с имеющимся кодом

04

Длительность ответа сайта при больших запросах занимала много времени

05

Изначальная архитектура не позволяла эффективно масштабироваться по мере увеличения нагрузки

Задачи рефакторинга

Улучшение читаемости кода

Улучшение читаемости кода

Устранение технического долга

Устранение технического долга

Повышение производительности

Повышение производительности

Облегчение масштабируемости

Облегчение масштабируемости

Этапы

Анализ текущего состояния сайта

Анализ текущего состояния сайта
  • Оценка существующего кода и архитектуры
  • Выявление проблемных зон и областей, требующих улучшения
  • Сбор статистики о производительности и нагрузке

Проектирование новой структуры платформы

Проектирование новой структуры платформы
  • Разработка схемы компонентов и их взаимодействия
  • Прототипирование и валидация архитектуры

Рефакторинг кода

Рефакторинг кода
  • Улучшение структуры, удаление дублирования, оптимизация алгоритмов и так далее
  • Периодическая проверка работоспособности с помощью тестов

Тестирование и документация

Тестирование и документация
  • Автотестирование
  • Ручное тестирование
  • Описание процессов в документацию

Внедрение изменений

Внедрение изменений
  • Деплой обновленной версии платформы на продакшн-сервер
  • Мониторинг работы системы после внедрения изменений для выявления возможных проблем

Основные изменения

Сервер

Стали использовать контейнеризацию Docker для удобного управления Laravel 11, Nuxt 3 и их зависимостями в единой контейнеризированной среде

Серверная инфраструктура

Фронтенд

  • Переход с jQuery на фреймворк Nuxt3
  • Периодическая проверка работоспособности с помощью тестов
  • Использование Pinia вместо манипуляций с глобальными переменными и элементами DOM
  • Полная перезагрузка страниц изменена на подгрузку необходимых компонентов
  • Четкое разделение на слои: UI-компоненты, бизнес-логика, работа с API
  • Интеграция с бэкенд валидацией и унифицированной системой ошибок
Фронтенд разработка

Бэкенд

  • Проект обновлён с PHP 7.4 до 8.3
  • Проект переведён с Laravel 8 на 11
  • Использование meilisearch для поисковой индексации
  • Переход с Pusher на Soketi, чтобы избавиться от внешней зависимости
  • Переход с Nova на MoonShine для админ-панели
  • Обработка внешних запросов реализована через очередь
  • Аутентификация переведена с сессий на JWT
  • Приложение переведено с серверного рендеринга на API
  • Бизнес-логика вынесена из контроллеров в сервисные классы
Бэкенд разработка

Результаты и преимущества проекта

Мы провели масштабный рефакторинг frontend и backend частей проекта, полностью пересобрав архитектуру контроллеров. Внедрили сервисный слой, стандартизировали подход к валидации и форматированию ответов, оптимизировали работу с базой данных, добавили OpenAPI-документацию и улучшили безопасность. Выполнили переход с jQuery на современный стек Nuxt 3. Реализовали модульную структуру приложения.

Структура

Простая и понятная структура

Мы чётко разделили, кто за что отвечает: одни части системы обрабатывают запросы от пользователей, другие выполняют внутреннюю логику. Это сделало код чище, проще и удобнее для работы всей команды

Подход

Одинаковый подход во всём проекте

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

Данные

Быстрая работа с данными

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

API

Понятный и предсказуемый API

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

Гибкость

Гибкость в отображении данных

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

Сложные данные

Поддержка сложных данных

Провели комплексное тестирование системы, убедившись в ее стабильности и надежности, и запустили в эксплуатацию

Безопасность

Высокий уровень безопасности

Мы ввели строгую проверку данных, надежную защиту паролей и гибкое управление доступами — система надежна и устойчива к ошибкам

Файлы

Работа с файлами — просто и безопасно

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

Тестирование

Простота тестирования

Так как все части системы разделены, их можно удобно проверять — как вручную, так и автоматически. Это экономит время и повышает стабильность при внесении изменений

Развитие

Готовность к развитию

Мы создали архитектуру, которая легко расширяется. Добавить новую роль, статус или возможность — теперь не проблема. Всё построено так, чтобы не мешать существующим функциям

Современный пользовательский опыт

Современный пользовательский опыт

Создали быстрый интерактивный интерфейс с плавными переходами и адаптивным дизайном

Модульная архитектура

Модульная архитектура

Была внедрена модульная система, которая кардинально улучшает структуру кода, упрощает поддержку и ускоряет разработку. Реализовали четкое разделение функционала на независимые, переиспользуемые модули

Мы не просто навели порядок в коде — мы создали прочный фундамент для долгосрочного развития проекта

Система теперь легко масштабируется, быстро дополняется и готова к полноценной работе в продакшне и внешней интеграции