Создан  demius PM 4 года назад; Обновил  demius PM год и 4 месяца назад

Разные красивые снипеты позволяющие наблюдать за прогрессом. Все показатели пока будем рассчитывать и складывать в redis. События ломающие консистентность по тегу будут пересчитывать соответствующие кеши (События случаются сильно реже чтения и вывода статистики). Когда расчет в рамках реквеста действия станет слишком накладным введем очереди.

Разные красивые снипеты позволяющие наблюдать за прогрессом. Все показатели пока будем рассчитывать и складывать в redis. События ломающие консистентность по тегу будут пересчитывать соответствующие кеши (События случаются сильно реже чтения и вывода статистики). Когда расчет в рамках реквеста действия станет слишком накладным введем очереди.

Архитектура

  • StatisticService работы со статистикой знает из какого кеша забрать статистику, если нету - какой хендлер вызвать для пересчета. Имеет функцию сброса указанных элементов статистики.
  • Хендлеры, по хендлеру на каждый элемент (ProjectTotalTaskHandler, ProjectTypeTaskHandler, ProjectStageTaskHandler,…) только рассчитывают.
  • dto Использования статистики ProjectSnipetStatDTO, …
  • Подписчик событий бизнес-логики - дергает StatisticService с требованием сбросить перечисленные ключи для проекта/всех проектов
  • Система Enum с картами связи хендлеров, элементов статистики и dto

Что подсчитываем

На первом этапе

  • Количество задач в проекте
  • Количество закрытых задач. (в снипете проекта рисуем прогресс бар)
  • Количество задач каждого типа (в снипете диаграмма в виде прогресс-бара)

При появлении справочника Этап задачи tndt-5

  • Количество задач каждого этапа (в настройках проекта можно выбрать тип первого прогресса)

При появлении системы Релизов

  • Статистику первого этапа (кол-во задач общее, по этапам, по типам, закрытых) для текущего и двух ближайших будущих релизов.

Как отображаем

В снипете проекта, если нет этапов прогресс-бар пропорции открытых и закрытых задач. Если есть справочник этапов, - пропорции задач каждого этапа. Если в проекте есть система релизов,выводим такой же прогресс для текущих релизов (по идее он один, но мы закладываемся на несколько (lts и current). По спойлеру раскрываем статистику по последнему закрытому, и двум-трем будущим

*Либо же по умному раскрываем статистику по тем, в которых есть задачи разных этапов, зачем смотреть на релизы полностью состоящие из открытых или закрытых задач. С другой стороны приятно и интересно видеть задачи других релизов количественно, и при старте нового релиза клево видеть, что достигнутый прогресс прошлого не обнулился с началом новой версии, а вот он лежит в прошлом, как законченная книга)

Комментарии могут оставлять только авторизованные пользователи
 demius год и 4 месяца назад

Вобще тут есть дельные вещи, но в целом кажется, что мы уже немного иначе все делаем, не отталкиваясь от этого документа.

 demius 4 года назад

Количество задач по типам (и так же по важности и приоритетам) это скорее круговые диаграммы на отдельной странице, а не дело для виджета. Впрочем тип можно по галочке в настройках выводить и в сниппетах проектов.