Перейти к основному содержимому

estisum_processing

Общее описание

Проект "Estisum Processing" представляет собой систему обработки данных, реализованную на базе Django (Python-фреймворк для веб-приложений). Этот проект фокусируется на логике обработки данных, в частности, на анализе и обновлении информации о задачах (таких как пользовательские истории и тикеты) в рамках какой-либо трекерной системы.

Описание модулей проекта

  1. Модели (models.py): Определяют структуру данных, используемую в проекте. Основные модели – EstisumSetting и RightsSupport.
  2. Обработка данных (processing.py): Содержит логику обработки задач, включая обновление историй пользователей и тикетов.
  3. Утилиты (utils.py): Вспомогательные функции для обработки данных, в том числе для сортировки и обновления задач.
  4. Миграции (migrations): Скрипты для управления изменениями в базе данных.
  5. Администрирование (admin.py): Настройка административной части Django для моделей проекта.
  6. Конфигурация приложения (apps.py): Определяет конфигурацию приложения в Django.

Общая логика работы системы

Система анализирует задачи в трекерной системе, используя настройки, определённые в модели EstisumSetting. Она обновляет информацию о пользовательских историях и тикетах, учитывая такие параметры, как оценка времени, статусы, и приоритеты. Процесс включает в себя выборку данных, сортировку, расчёт и обновление информации в трекерной системе.

Интеграции с внешними системами

Проект интегрируется с внешними трекерными системами через API. Это позволяет получать данные о задачах, пользовательских историях и тикетах, а также обновлять их в соответствии с логикой обработки данных проекта. Основные интеграции реализованы через модуль utils.py, который содержит функции для работы с API трекерных систем.

Действия в системе

  1. estisum_processing: Основное действие, выполняемое в системе. Это функция обработки данных, включающая обновление оценок, статусов и порядка задач в трекерной системе.

Сценарий использования

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

Система "Estisum Processing" может быть использована для автоматизации этого процесса. Например, менеджер проекта хочет обновить оценки времени, необходимого для выполнения пользовательских историй, основываясь на текущих данных о затраченном времени и оставшихся задачах. Система будет автоматически анализировать данные из трекера, обновлять оценки и порядок задач, обеспечивая актуальность и точность информации для команды проекта.

Таким образом, "Estisum Processing" обеспечивает более эффективное и точное управление задачами и проектами, минимизируя ручной труд и ошибки.

Модель данных

  1. 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: Целочисленное поле, хранит идентификатор для уведомлений.
  2. RightsSupport

    • Эта модель не имеет дополнительных полей и используется в основном для управления правами доступа.

Диаграмма состояний

Анализ кода проекта

  1. Оптимизация Функций:

    • В processing.py, функции compare_and_update и update_issue могут быть объединены для упрощения и повышения читаемости кода.
  2. Использование Шаблонов Дизайна:

    • Применение шаблонов проектирования, таких как фабрика или стратегия, может помочь в организации и масштабировании кода, особенно в части работы с различными типами трекеров.
  3. Рефакторинг:

    • В utils.py, функция sort_by_user_stories слишком длинная и выполняет несколько задач. Разделение на более мелкие функции повысит читаемость и упрощение восприятия.