Очередная суббота подходит к концу. Что мы имеем на данный момент
- Проект создается
- План может быть составлен
- План может быть запущен
- Работа с задачами
- Работа с файлами
- Переписки и события
- Управление группами и ролями всей системы
- Управление доступами ко вкладкам, управление стадиями (создание новых, редактирование существующих)
Что еще нужно сделать для публичное беты (если, конечно, она кому-то нужна 😌):
- Передачу проекта по стадиям (на данный момент, это работает через лютый костыль для теста) во время выполнения плана.
- Передачу проекта по стадиям при отключенном выполнении плана
- Новый инсталлятор
- Систему логирования, которая сейчас толком не сделана
Ну, с учетом выполненного, осталось допилить ~ 20% задуманного для бетки
Теперь о плане и выполнения.
Ранее, речь шла о заполнении плана и отображении оного в соотв. вкладке проекта. Основной принцип примерно такой: генерируем с помощью полученных данных и процедуры очередность задач/ стадий, а далее, при запуске новой стадии по плану запускаем "первую задачу" (она, буквально, помечается, как первая задача) и смотрим ее связи (как в проджекте): если есть задачи типа "начало-начало", тогда запускаем и их. По завершении задачи просто смотрим, какая есть следующая задача и есть ли связи "окончание-окончание", которые так же надо завершить. По сути, такую модель исполнения плана я бы назвал триггреной, так как с планом должны что-то делать(завершать задачи, в данном случае), чтобы он был актуальным.
Можно было бы использовать шедулер и запускать задачи автоматически, НО вся проблема в том, что пришлось бы постоянно проверять, а завершились ли предыдущие задачи или нет + обслуживание этих шедулеров занятие не весело-утомительное, да и лишняя нагрузка на СУБД, без которой можно обойтись. Проще код - быстрее и легче его модифицировать и понять принцип, особенно, когда выполняющие задачи или набивавший задачи вдруг осознал, что накосячил. В этом случае, лучше заниматься греблей в ванной, чем в открытом море, если вы поняли о чем я 😎.
Так вот. С точки зрения стадий все совсем просто - выбираем первую по списку в очереди на проект и запускаем ее, а вот в задаче, при наличии связи "Завершение - завершение", появляется некий нюанс - в обязательном порядке нужно писать у подчиненной задачи, что она была завершена из-за того, что завершилась задача, от которой она зависела, а то могут возникнуть вопросы к исполнителю, который может даже не успеть на нее среагировать. Я пока не делал возможности продливать задачи, но планирую, так вот, с подобной связью функция продления малость бесполезна, по очевидной причине.
Ну и получилось что-то вроде:
Комментариев нет:
Отправить комментарий