-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Спринт 6 #2
Спринт 6 #2
Conversation
…a-kanban into sprint_6-solution
✅ Все автотесты на GIT пройдены |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Добрый день, Алексей!
Хорошая работа, от меня всего пара уточнений.
|
||
import ru.alexgur.kanban.model.Task; | ||
|
||
public class Node { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Этот класс можно сделать внутренним прямо в менеджере истории, потому что больше он нигде не нужен.
На усмотрение.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Сделал класс внутренним, удалил файл.
@@ -10,6 +10,8 @@ public interface HistoryManager { | |||
|
|||
void clear(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
clear
По техническому заданию этот метод не требуется добавлять в интерфейс, его можно сделать внутренним методом менеджера истории.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Удалил из интерфейса.
@Override | ||
public void add(Task task) { | ||
addImpl(task); | ||
} | ||
|
||
@Override | ||
public List<Task> getHistory() { | ||
return getHistoryImpl(); | ||
List<Task> listTasks = new ArrayList<>(); | ||
for (Node node : getTasks()) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Формирование общего списка задач в истории можно было бы упростить.
На усмотрение.
public ArrayList<Task> getHistory() {
ArrayList<Task> tasks = new ArrayList<>();
Node node = first;
while (node != null) {
tasks.add(node.task);
node = node.next;
}
return tasks;
}
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Пока оставил, чтобы не было дубликования кода с приватным методом getTasks.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Так в этом случае приватный метод вообще будет не нужен.
test/ru/alexgur/kanban/Tests.java
Outdated
@@ -1,21 +1,22 @@ | |||
package ru.alexgur.kanban.tests; | |||
package test.ru.alexgur.kanban; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Обычно для тестов создаётся отдельное дерево пакетов, аналогичное структуре пакетов кода.
src
-- tracker
-- controllers
-- model
.......................
test
-- tracker
-- controllers
-- model
.......................
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
То есть надо тесты разделить по разным файлам, а не все в один файл ставить?
Например, есть файл с кодом src/ru/alexgur/kanban/model/Task,java
Для методов в этом файле должны быть тесты в другом файле test/ru/alexgur/kanban/model/Task,java
Верно понял? Или как-то по-другому?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Разделил все тесты на файлы (*Test.java), разбил по папкам.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Да, совершенно верно, обычно на один тестируемый файл создаётся соответствующий класс-тест
класс внутренним и приватным, удалить clear из интерфейса HistoryManager
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Добрый день, Алексей!
Замечаний нет.
Работа принята.
Сделать бесконечную историю со скоростью доступа О(1)