Skip to content

Sprint 8 solution#5

Merged
ksupyl merged 30 commits into
mainfrom
tracker-solution-time-and-duration
Apr 18, 2026
Merged

Sprint 8 solution#5
ksupyl merged 30 commits into
mainfrom
tracker-solution-time-and-duration

Conversation

@ksupyl
Copy link
Copy Markdown
Owner

@ksupyl ksupyl commented Apr 16, 2026

В рамках спринта реализована функциональность приоритизации задач и проверки пересечений по времени.

Основные изменения:

добавлены новые поля в задачи:

  • duration — продолжительность выполнения задачи;
  • startTime — дата и время начала выполнения;
  • реализован метод getEndTime() для расчёта времени окончания задачи;

доработан класс Epic:

  • продолжительность рассчитывается как сумма продолжительностей всех подзадач;
  • startTime определяется по самой ранней подзадаче;
  • endTime определяется по самой поздней подзадаче;
  • временные поля эпика сделаны расчётными;

реализован список приоритетных задач:

  • добавлен метод getPrioritizedTasks();
  • для хранения задач в отсортированном виде используется TreeSet;
  • задачи без startTime не добавляются в список приоритетов;

реализована проверка пересечений по времени:

  • добавлен метод проверки пересечения двух задач;
  • добавлен метод проверки пересечения задачи с другими задачами менеджера;
  • при создании и обновлении задач и подзадач выполняется проверка на пересечение;

доработано сохранение состояния в файл:

  • в сериализацию и десериализацию добавлены поля duration и startTime;

проведён рефакторинг отдельных методов с использованием Stream API.

Тестирование:
добавлен абстрактный класс TaskManagerTest для общих тестов реализаций TaskManager;
проверено создание, обновление, удаление и очистка задач, эпиков и подзадач;
проверены граничные условия расчёта статуса Epic;
проверен расчёт временных полей Epic;
проверена сортировка задач по приоритету;
проверено исключение задач без startTime из списка приоритетов;
проверена логика пересечения временных интервалов;
проверена работа истории просмотров;
проверены граничные случаи поиска по id;
все тесты успешно пройдены.

С уважением,
Ксения

ksupyl added 29 commits April 14, 2026 17:43
Comment thread src/service/InMemoryTaskManager.java
@ksupyl ksupyl merged commit 940e7ba into main Apr 18, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants