Skip to content
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

Merged
merged 16 commits into from
Dec 3, 2024
Merged

Спринт 6 #2

merged 16 commits into from
Dec 3, 2024

Conversation

AlekseyGur
Copy link
Owner

Сделать бесконечную историю со скоростью доступа О(1)

@AlekseyGur
Copy link
Owner Author

✅ Все автотесты на GIT пройдены

Copy link

@avfyodorov avfyodorov left a 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 {

Choose a reason for hiding this comment

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

Этот класс можно сделать внутренним прямо в менеджере истории, потому что больше он нигде не нужен.
На усмотрение.

Copy link
Owner Author

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();

Choose a reason for hiding this comment

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

clear

По техническому заданию этот метод не требуется добавлять в интерфейс, его можно сделать внутренним методом менеджера истории.

Copy link
Owner Author

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()) {

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;
}

Copy link
Owner Author

Choose a reason for hiding this comment

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

Пока оставил, чтобы не было дубликования кода с приватным методом getTasks.

Choose a reason for hiding this comment

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

Так в этом случае приватный метод вообще будет не нужен.

@@ -1,21 +1,22 @@
package ru.alexgur.kanban.tests;
package test.ru.alexgur.kanban;

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
.......................

Copy link
Owner Author

@AlekseyGur AlekseyGur Nov 26, 2024

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
Верно понял? Или как-то по-другому?

Copy link
Owner Author

Choose a reason for hiding this comment

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

Разделил все тесты на файлы (*Test.java), разбил по папкам.

Choose a reason for hiding this comment

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

Да, совершенно верно, обычно на один тестируемый файл создаётся соответствующий класс-тест

класс внутренним и приватным, удалить clear из
интерфейса HistoryManager
Copy link

@avfyodorov avfyodorov left a comment

Choose a reason for hiding this comment

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

Добрый день, Алексей!

Замечаний нет.
Работа принята.

@AlekseyGur AlekseyGur merged commit 63cfa6f into main Dec 3, 2024
1 check passed
@AlekseyGur AlekseyGur deleted the sprint_6-solution branch December 3, 2024 09:44
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