Софториум - это хард разработка softorium Сбер ID
Усиливаем бизнес через IT: от оптимизации до масштабирования
Рейтинг
5 494
№ 252 в каталоге
Отзывы
Профессионализм
-/10
Коммуникация
- /10
Город
Кемерово
Опыт работы
5 лет
На сайте с
2021 года
Юридический статус
Юридическое лицо

Разработка сайта производителя взрывобезопасного оборудования

Используемые навыки Python

Описание

Заказчик — один из ведущих производителей взрывобезопасного оборудования в России, пришел к нам с заданием написать скрипт для обновления информации о товарах на сайте. Данные для обновления должны были загружаться путем парсинга XML-файла, полученного из 1С.

Что мы делали

Из всего списка выполненных задач можно выделить две наиболее сложные:
1. Парсинг файлов выгрузки из 1С.
2. Оптимизация запросов по поиску артикула, исходя из выбранной комплектации.


1. Парсинг файлов выгрузки из 1С
• Проблема
В этой задаче необходимо было написать скрипт для парсинга XML-файла и на основе полученных данных либо добавлять, либо обновлять товары на сайте. Для каждого товара существует свой отдельный файл с полным описанием свойств товара и огромным количеством различных вариаций его исполнения. Иногда размеры таких файлов доходили до нескольких гигабайт, из-за чего мы не могли парсить файлы обычными средствами, так как объем оперативной памяти на сервере был меньше, чем размеры этих файлов.
• Решение
В итоге был написан скрипт для парсинга, который не загружал во время парсинга весь файл целиком и работал с ним по строчкам, что, с одной стороны, усложнило логику, но с другой — позволило парсить файлы любых размеров.

2. Оптимизация запросов по поиску артикула, исходя из выбранной комплектации
• Проблема
Задача появилась спонтанно, во время тестирования логики работы с артикулами. После очередного парсинга файла выгрузки из 1С выяснилось, что у данного товара при изменении его конфигурации запросы на получение нового артикула выполняются приблизительно 30 секунд, что абсолютно неприемлемо. Необходимо было понять логику поиска артикула и найти тот проблемный участок кода, который не справлялся со своей задачей. В итоге после анализа и тестирования выяснилось, что весь ранее реализованный функционал абсолютно не рассчитан на работу с товарами, у которых может быть более сотни тысяч различных артикулов.
• Решение
Для решения проблемы код по поиску артикула был не только модернизирован, но и в большинстве своем полностью переписа

Оценили проект:

Другие проекты

Все проекты →
Веб-разработка и IT Учет рабочего времени
Учет рабочего времени
122
Веб-разработка и IT Доработка и развитие портала юридических услуг
Доработка и развитие портала юридических услуг
187
Веб-разработка и IT Маркетплейс Wismo
Маркетплейс Wismo
127
Веб-разработка и IT Сервис поиска и выбора отелей
Сервис поиска и выбора отелей
112