estisum_processing
Общее описание
Проект "Estisum Processing" представляет собой систему обработки данных, реализованную на базе Django (Python-фреймворк для веб-приложений). Этот проект фокусируется на логике обработки данных, в частности, на анализе и обновлении информации о задачах (таких как пользовательские истории и тикеты) в рамках какой-либо трекерной системы.
Описание модулей проекта
- Модели (models.py): Опред еляют структуру данных, используемую в проекте. Основные модели –
EstisumSettingиRightsSupport. - Обработка данных (processing.py): Содержит логику обработки задач, включая обновление историй пользователей и тикетов.
- Утилиты (utils.py): Вспомогательные функции для обработки данных, в том числе для сортировки и обновления задач.
- Миграции (migrations): Скрипты для управления изменениями в базе данных.
- Администрирование (admin.py): Настройка административной части Django для моделей проекта.
- Конфигурация приложения (apps.py): Определяет конфигурацию приложения в Django.
Общая логика работы системы
Система анализирует задачи в трекерной системе, используя настройки, определённые в модели EstisumSetting. Она обновляет информацию о пользовательских историях и тикетах, учитывая такие параметры, как оценка времени, статусы, и приоритеты. Процесс включает в себя выборку данных, сортировку, расчёт и обновление информации в трекерной системе.
Интеграции с внешними системами
Проект интегрируется с внешними трекерными системами через API. Это позволяет получать данные о задачах, пользовательских историях и тикетах, а также обновлять их в соответствии с логикой обработки данных проекта. Основные интеграции реализованы через модуль utils.py, который содержит функции для работы с API трекерных систем.
Действия в системе
- estisum_processing: Основное действие, выполняемое в системе. Это функция обработки данных, включающая обновление оценок, статусов и порядка задач в трекерной системе.
Сценарий использования
Представим ситуацию, где компания использует трекер для управления проектами и задачами. В нём созданы пользовательские истории и тикеты, которые требуют постоянного обновления и анализа.
Система "Estisum Processing" может быть использована для автоматизации этого процесса. Например, менеджер проекта хочет обновить оценки времени, необходимого для выполнения пользовательских историй, основываясь на текущих данных о затраченном времени и оставшихся задачах. Система будет автоматически анализировать данные из трекера, обновлять оценки и порядок задач, обеспечивая актуальность и точность информации для команды проекта.
Таким образом, "Estisum Processing" обеспечивает более эффективное и точное управление задачами и проектами, минимизируя ручной труд и ошибки.
Модель данных
-
EstisumSetting
- tracker: Связь один к одному с моделью
Tracker. Указывает на конкретный трекер в системе. - tracker_project_name_regex: Строковое поле, хранит регулярное выражение для имен проектов в трекере.
- tracker_issue: Целочисленное поле, хранит идентификатор типа задачи в трекере.
- tracker_type: Целочисленное поле, хранит идентификатор типа трекера.
- tracker_user_stories: Целочисленное поле, хранит идентификатор пользовательских историй в трекере.
- status_closed: Целочисленное поле, хранит идентификатор статуса "закрыто" в трекере.
- status_rejected: Целочисленное поле, хранит идентификатор статуса "отклонено" в трекере.
- rough_estimate: Целочисленное поле, хранит идентификатор для грубой оценки задачи.
- impact: Целочисленное поле, хранит идентификатор для оценки влияния задачи.
- story_points: Целочисленное поле, хранит идентификатор для оценки в баллах (story points).
- order: Целочисленное поле, хранит идентификатор для упорядочивания задач.
- position: Целочисленное поле, хранит идентификатор для позиционир ования задач.
- two_zeroes: Целочисленное поле, хранит значение для форматирования.
- notification: Целочисленное поле, хранит идентификатор для уведомлений.
- tracker: Связь один к одному с моделью
-
RightsSupport
- Эта модель не имеет дополнительных полей и используется в основном для управления правами доступа.
Диаграмма состояний
Анализ кода проекта
-
Оптимизация Функций:
- В
processing.py, функцииcompare_and_updateиupdate_issueмогут быть объединены для упрощения и повышения читаемости кода.
- В
-
Использование Шаблонов Дизайна:
- Применение шаблонов проектирования, таких как фабрика или стратегия, может помочь в организации и масштабировании кода, особенно в части работы с различными типами трекеров.
-
Рефакторинг:
- В
utils.py, функцияsort_by_user_storiesслишком длинная и выполняет несколько задач. Разделение на более мелкие функции повысит читаемость и упрощение восприятия.
- В