Skip to content

Sprint 6: unlimited history + tests#1

Open
DokPlay wants to merge 5 commits intomainfrom
sprint_6-solution
Open

Sprint 6: unlimited history + tests#1
DokPlay wants to merge 5 commits intomainfrom
sprint_6-solution

Conversation

@DokPlay
Copy link
Copy Markdown
Owner

@DokPlay DokPlay commented Aug 6, 2025

  • src/manager/InMemoryHistoryManager.java

    • Реализован двусвязный список + HashMap<id,Node>
    • add(task) теперь удаляет дубликаты через removeNode за O(1)
    • remove(id) — новый метод HistoryManager
  • src/manager/TaskManager.java

    • в интерфейс добавлен void remove(int id)
  • src/manager/InMemoryTaskManager.java

    • вызовы historyManager.remove(...) в removeTask / removeEpic / removeSubtask
  • src/manager/HistoryManager.java

    • объявлен метод remove(int id)
  • tests

    • HistoryManagerTest — проверяет отсутствие дублей и порядок
    • InMemoryTaskManagerTest — проверка очистки истории при удалении, истории > 10, дубль-просмотров
    • TaskManagerHistoryIntegrationTest — интеграция: удаление эпика убирает эпик и все Subtask'и из истории

Issue: sprint-6 / ТЗ «неограниченная история без дублей»

* src/manager/InMemoryHistoryManager.java
  + Реализован двусвязный список + HashMap<id,Node>
  + add(task) теперь удаляет дубликаты через removeNode за O(1)
  + remove(id) — новый метод HistoryManager

* src/manager/TaskManager.java
  + в интерфейс добавлен void remove(int id)

* src/manager/InMemoryTaskManager.java
  + вызовы historyManager.remove(...) в removeTask / removeEpic / removeSubtask

* src/manager/HistoryManager.java
  + объявлен метод remove(int id)

* tests
  + HistoryManagerTest — проверяет отсутствие дублей и порядок
  + InMemoryTaskManagerTest — проверка очистки истории при удалении,
    истории > 10, дубль-просмотров
  + TaskManagerHistoryIntegrationTest — интеграция: удаление эпика убирает
    эпик и все Subtask'и из истории

Issue: sprint-6 / ТЗ «неограниченная история без дублей»
Copy link
Copy Markdown

@LexLippi LexLippi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Привет!

Хорошая работа!

Есть несколько мелких замечаний, которые необходимо исправить!

Желаю удачи!

Comment thread src/manager/InMemoryHistoryManager.java Outdated
Node oldTail = tail;
Node n = new Node(oldTail, task, null);
tail = n;
if (oldTail == null) head = n; else oldTail.next = n;
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Лучше в соответветствии с Google Java Code Style всегда использовать фигурные скобки, даже когда они опциональны:

https://google.github.io/styleguide/javaguide.html#s4.1.1-braces-always-used

Comment thread src/manager/InMemoryHistoryManager.java Outdated
/* ───── вспомогательные ───── */
private void linkLast(Task task) {
Node oldTail = tail;
Node n = new Node(oldTail, task, null);
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Лучше не использовать однобуквенные названия переменных, хотя в таком простом коде это можно оставить

Comment thread src/manager/InMemoryHistoryManager.java Outdated
tail = n;
if (oldTail == null) head = n; else oldTail.next = n;
}
private void removeNode(Node n) {
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Замечания аналогичные предыдущему методу

Comment thread src/manager/InMemoryHistoryManager.java Outdated
}
private List<Task> getTasks() {
List<Task> list = new ArrayList<>();
for (Node n = head; n != null; n = n.next) list.add(n.data);
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Аналогично про фигурные скобки

Copy link
Copy Markdown

@LexLippi LexLippi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Привет!

Отличная работа!

Желаю удачи в следующих спринтах!

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