Разработка велась с применением TDD (Test-Driven Development) для ключевых сервисов. Для написания тестов использованы библиотеки pytest и pytest-asyncio. Написаны unit-тесты для:
· Функций расчета итоговой стоимости (покрытие краевых случаев);
· Сериализаторов/десериализаторов Pydantic;
· Сервисного слоя (с использованием моков — unittest.mock для имитации БД).
На момент завершения разработки процент покрытия кода тестами (Code Coverage) составил 87%, что превышает пороговое значение, установленное в проекте (80%).
---
11. Проверка программного кода на соответствие стандартам кодирования (Code Conventions) и принятому в организации стилю оформления
Код проходил статический анализ с помощью инструментов Flake8 и Black (автоформатирование). Проверялось соответствие стандарту PEP 8 (для Python) и соглашениям об именовании (CamelCase для классов, snake_case для функций). В организации принят стандарт оформления docstring в формате Google Style, что строго контролировалось в CI-пайплайне (GitLab CI). Нарушения стиля блокировали принятие Merge Request'а.
---
12. Рефакторинг, повышение производительности и эффективности использования ресурсов
После написания первичного кода и тестирования был проведен рефакторинг:
1. Удалены дублирующиеся SQL-запросы (внедрен паттерн Data Mapper).
2. Тяжелые вычисления (формирование отчетов) вынесены в фоновые процессы Celery, чтобы не блокировать основной поток FastAPI.
3. Внедрено кэширование результатов GET-запросов на уровне Redis со временем жизни (TTL) 5 минут, что снизило нагрузку на CPU с 40% до 8% при пиковых нагрузках.
---
13. Составление технической документации в соответствии с Единой системой программной документации (ЕСПД)
Разработана техническая документация в соответствии с требованиями ГОСТ ЕСПД (комплекс ГОСТ 19.xxx). Оформлены следующие документы:
· Техническое задание (ТЗ) — уточненное по результатам разработки.
· Программа и методика испытаний (ПМИ) — содержащая сценарии тестирования.
· Руководство программиста — с описанием структуры модулей и API.
· Руководство оператора — инструкция для конечных пользователей.
Документация велась в формате Markdown с последующей конвертацией в PDF, а также в виде интерактивной документации Swagger UI (OpenAPI), доступной по эндпоинту /docs.
---
Заключение
В ходе выполнения работы был разработан и внедрен модуль автоматизации процесса обработки заявок. Решены все поставленные задачи: проведен анализ бизнес-процессов, обоснован выбор технологического стека, реализован программный код с полным циклом тестирования и отладки. Особое внимание уделено работе с системой контроля версий Git и документированию согласно ЕСПД. Применение профилирования и рефакторинга позволило достичь целевых показателей производительности (время ответа API сокращено с 500 мс до 120 мс). Разработанный модуль готов к эксплуатации и может быть масштабирован на другие бизнес-процессы предприятия.
---
Список литературы
1. Орлов С. А., Цимбалюк В. Н. «Технологии разработки программного обеспечения». — СПб.: Питер, 2021. — 672 с.
2. Фаулер М. «Рефакторинг: улучшение существующего кода». — СПб.: Символ-Плюс, 2018. — 448 с.
3. ГОСТ 19.101-77. Единая система программной документации. Виды программ и программных документов.
4. Соммервилл И. «Инженерия программного обеспечения». — М.: Вильямс, 2020. — 960 с.
5. Патон Р. «Тестирование программного обеспечения». — М.: Лори, 2019. — 314 с.
6. Официальная документация Python и FastAPI. – URL: docs.python.org / fastapi.tiangolo.com.
7. Работа с Git: Pro Git book (Скотт Шакон). – URL: git-scm.com/book/ru.