Files
bottohelp/TASK_ESTIMATES.md
T

97 lines
9.3 KiB
Markdown

# Оценки задач из TODO_NEXT_DAY.md
## Извлеченный список задач
1. **Интеграционные тесты системы уведомлений**: Создание интеграционного теста для полной цепочки от пользователя до уведомления, включая тестирование сценариев модерации и проверку зависимостей (UserRepository, ScoreRepository).
2. **Улучшение обработки ошибок в NotificationService**: Добавление специфической обработки сетевых ошибок (ConnectionError, TimeoutError), rate limiting для Telegram API и логирование ошибок.
3. **Мониторинг отправки уведомлений**: Добавление счетчиков успешных/неудачных отправок, метод для получения статистики и интеграция с системой метрик.
4. **Повторные попытки отправки уведомлений**: Реализация механизма повторных попыток с экспоненциальной задержкой и ограничением максимального количества попыток.
5. **Добавить контекстные меню с учетом прав доступа**: Реализация отображения контекстных меню на основе ролей пользователя, интеграция проверок разрешений и тестирование для разных уровней доступа.
6. **Добавить реакцию на сообщения пользователей в чате**: Реализация обработки сообщений на наличие "+" и автоматическая реакция с эмодзи рукопожатия в групповых чатах.
## Оценки для каждой задачи
1. **Интеграционные тесты системы уведомлений**
**Сложность**: Средняя (требует понимания архитектуры, интеграции с репозиториями и настройки тестового окружения).
**Зависимости**: Зависит от существующих репозиториев (UserRepository, ScoreRepository) и системы модерации; может выполняться параллельно с другими задачами по уведомлениям.
**Оценка времени на написание тестов**: 2-4 часа (средняя сложность интеграции, включая mock-объекты и проверку состояния базы данных).
2. **Улучшение обработки ошибок в NotificationService**
**Сложность**: Высокая (требует глубокого понимания Telegram API, асинхронной обработки и логирования).
**Зависимости**: Связана с задачей 1 (интеграционные тесты) и задачей 4 (повторные попытки); должна выполняться после базовой интеграции уведомлений.
**Оценка времени на написание тестов**: 4-6 часов (высокая сложность, включая mock-сервисы для симуляции сетевых сбоев и проверки логирования).
3. **Мониторинг отправки уведомлений**
**Сложность**: Средняя (требует работы с метриками и счетчиками, но опирается на существующие компоненты).
**Зависимости**: Интегрируется с существующими метриками; зависит от задачи 2 (улучшение обработки ошибок) для корректного учета неудач.
**Оценка времени на написание тестов**: 2-4 часа (средняя сложность, включая mock-метрики и проверку счетчиков).
4. **Повторные попытки отправки уведомлений**
**Сложность**: Высокая (требует работы с асинхронными таймерами и обработкой исключений).
**Зависимости**: Требует задачи 2 (улучшение обработки ошибок); критически зависит от NotificationService.
**Оценка времени на написание тестов**: 4-6 часов (высокая сложность, включая сценарии сбоев, проверку задержек и максимального числа попыток).
5. **Добавить контекстные меню с учетом прав доступа**
**Сложность**: Средняя (требует интеграции с системой ролей и UI-компонентами).
**Зависимости**: Требует наличия системы ролей; не зависит от задач по уведомлениям, может выполняться параллельно.
**Оценка времени на написание тестов**: 2-4 часа (средняя сложность, включая сценарии с разными ролями и mock-пользователями).
6. **Добавить реакцию на сообщения пользователей в чате**
**Сложность**: Низкая (простая логика парсинга и API-вызов).
**Зависимости**: Независимая задача; может быть выполнена в любое время.
**Оценка времени на написание тестов**: 1-2 часа (низкая сложность, включая парсинг сообщений и реакцию в различных контекстах).
## План выполнения задач
На основе оценок сложности и зависимостей, составлен план выполнения с учетом параллелизма. Зависимости: задача 2 зависит от 1, задачи 3 и 4 зависят от 2, задачи 5 и 6 независимы. Время на реализацию оценено по сложности (низкая: 1-2ч, средняя: 2-4ч, высокая: 4-6ч), плюс время на тесты из файла. Общее время на задачу = реализация + тесты.
### Оценки задач с временами
1. **Интеграционные тесты системы уведомлений**
- Реализация: 3ч (средняя сложность)
- Тесты: 3ч (среднее из 2-4ч)
- Итого: 6ч
2. **Улучшение обработки ошибок в NotificationService**
- Реализация: 5ч (высокая сложность)
- Тесты: 5ч (среднее из 4-6ч)
- Итого: 10ч
3. **Мониторинг отправки уведомлений**
- Реализация: 3ч (средняя сложность)
- Тесты: 3ч (среднее из 2-4ч)
- Итого: 6ч
4. **Повторные попытки отправки уведомлений**
- Реализация: 5ч (высокая сложность)
- Тесты: 5ч (среднее из 4-6ч)
- Итого: 10ч
5. **Добавить контекстные меню с учетом прав доступа**
- Реализация: 3ч (средняя сложность)
- Тесты: 3ч (среднее из 2-4ч)
- Итого: 6ч
6. **Добавить реакцию на сообщения пользователей в чате**
- Реализация: 1.5ч (низкая сложность)
- Тесты: 1.5ч (среднее из 1-2ч)
- Итого: 3ч
### Диаграмма Ганта (Markdown-таблица)
Параллелизм: задачи 5 и 6 могут идти параллельно с 1-4, но для простоты стартуют после 1. Задачи 3 и 4 параллельно после 2. Общий срок: 16ч (сумма критического пути: 1→2→3/4 + параллельные 5/6).
| Задача | Старт (день) | Конец (день) | Продолжительность (ч) | Зависимости |
|--------|--------------|--------------|------------------------|-------------|
| 1. Интеграционные тесты | 1 | 1 | 6 | - |
| 2. Обработка ошибок | 2 | 3 | 10 | 1 |
| 3. Мониторинг | 4 | 4 | 6 | 2 |
| 4. Повторные попытки | 4 | 5 | 10 | 2 |
| 5. Контекстные меню | 2 | 2 | 6 | - |
| 6. Реакция на сообщения | 2 | 2 | 3 | - |
Общий срок: 16ч (критический путь: 1+2+4=16ч, другие параллельно).