Оптимизация кода Python для платформы планирования производства
- Analyst
- Backend
- QA
- Python
- OR-Tools
- Postgresql
- Boto3
- Psycopg2-binary
- Pandas
Индустрия
Промышленность
У вас есть задача?
Давайте обсудим?
О клиенте
Консалтинговая компания более 15 лет создает ИТ- и производственные стратегии, помогает реализовывать полномасштабные end-to-end проекты, оказывает сервисную поддержку и сопровождение компьютерных систем, а также разрабатывает ПО, используя технологии Machine Learning и Data Science, а также библиотеки для математической оптимизации. ИТ-решения и услуги предлагаются промышленным, нефтяным, газовым, химическим и фармацевтическим отраслям.
О проекте
Платформа предназначена для планирования производства, эффективного распределения ресурсов, прогнозирования спроса и продаж. Технологии машинного обучения и AI-модели обеспечивают Data driven подход и гарантируют заказчикам высокую эффективность бизнеса за счет принятия решений на основе данных. Для обеспечения стабильной работы ПО и высокой скорости выполнения операций клиент нуждался в оптимизации кода.
Описание задачи
Разработчикам RedLab требовалось создать высокопроизводительную архитектуру, которая будет справляться с большими нагрузками и выдавать корректные результаты за минимальное время. В зону ответственности входила реализация следующих задач:
- Дописать функционал в части расчета параметров для планирования производства.
- Улучшить качество кодовой базы без изменения ее поведения.
- Покрыть часть программы модульными тестами.
Реализация
Команда RedLab детально рассмотрела используемые технологии и изучила функциональные и бизнес-требования к платформе. Далее ИТ-специалисты выполнили ряд задач:
- Выполнили рефакторинг кода, благодаря чему удалось улучшить читаемость исходников, упростить внесение изменений и повысить производительность ПО.
- Использовали библиотеку OR-Tools, чтобы найти оптимальные решения математических уравнений на основе входных ограничений.
- Улучшили работу с базой данных Postgresql с помощью драйвера psycopg2-binary, что помогло быстрее получать и отправлять итоговые Dataset.
- Оптимизировали управление технологией boto3, которая позволила интегрировать приложения, библиотеки и скрипты Python с сервисами AWS.
- Усовершенствовали pandas для чтения и анализа данных из Dataset. Теперь обрабатывать большие объемы информации стало проще.
- Для улучшенной работы с математическими алгоритмами построили список ограничений (временных, иерархических и т.д.), создали список переменных и загрузили эти данные в библиотеку OR-Tools.