#ecom#backend-разработка#php

Оптимизация бэкенда B2B-платформы для поставщиков и магазинов розничной сети

[ клиент ] о заказчике

Розничная сеть с франшизой: магазины закупают товары у поставщиков через собственную B2B-платформу сети. Платформа работает в продакшене и расширяется в сторону B2C.

[ 01 ] контекст

О проекте

Заказчик развивает B2B-платформу, на которой поставщики продают товары магазинам сети. Наша зона ответственности — бэкенд-разработка: производительность каталога, запросов к базе данных и выгрузок.

Через платформу магазины заказывают товары у поставщиков, а в B2C-разделе покупатель может заказать доставку на дом, если в его регионе есть пункт выдачи. Над платформой работают несколько команд: базы данных, каталог, интеграция с мобильным приложением.

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

[ 02 ] задачи

Задачи проекта

  1. Находить и устранять узкие места в производительности каталога

  2. Ускорять тяжёлые запросы к базе данных без регресса в действующем коде

  3. Сделать выгрузку больших отчётов в Excel устойчивой к нехватке памяти

  4. Поддерживать текущий каталог, пока команда заказчика разрабатывает новый

[ 03 ] этапы

Как мы это сделали

  1. 01

    Погружение в каталог

    Разобрали код действующего каталога и нашли места, где данные запрашиваются из базы в цикле, а не одной выборкой

  2. 02

    Оптимизация запросов

    Тяжёлый запрос с объединением таблиц вынесли из проблемного места и разбили на несколько более лёгких

  3. 03

    Выгрузка в Excel

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

  4. 04

    Точечные правки

    Вносим изменения так, чтобы не вызвать регресс в коде, который нельзя переписать целиком без риска

  5. 05

    Задачи по ТЗ

    Берём в работу задачи по готовым техническим заданиям с ожидаемыми сроками и выпускаем их непрерывными релизами по готовности

[ 04 ] команда и стек

Кто и на чём

экспертиза

Команда продукта

ТимлидБэкенд-разработчикиКоманда баз данныхКоманда каталогаКоманда мобильной интеграцииТестирование
технологии

Стек

PHPБитриксSQL
процессы

Как работаем

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

[ 05 ] результаты

Что получил клиент

B2B + B2CПлатформа обслуживает магазины сети и покупателей с доставкой через пункты выдачи
≈30Специалистов в нескольких командах развивают платформу
1 выборкаВместо запросов к базе в цикле
ExcelВыгрузку отчётов переводим на решение, которое не падает по памяти
Оптимизация без остановки продакшенаПравки вносятся точечно в работающую платформу, пока параллельно разрабатывается новый каталог

Платформа продолжает работать и расти, а мы закрываем узкие места действующего каталога, пока команда заказчика готовит ему замену.

[ заявка ] свяжемся в рабочее время

Похожаязадача?

Расскажите о ней — подберём команду и предложим решение.

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