Skip to content

Lesson 40 queue2 for review#92

Open
Binary-Cat-01 wants to merge 1 commit intoKFalcon2022:for-prfrom
Binary-Cat-01:lesson_40_queue2_for_review
Open

Lesson 40 queue2 for review#92
Binary-Cat-01 wants to merge 1 commit intoKFalcon2022:for-prfrom
Binary-Cat-01:lesson_40_queue2_for_review

Conversation

@Binary-Cat-01
Copy link
Copy Markdown

No description provided.

@Binary-Cat-01 Binary-Cat-01 changed the title Add solution of lesson 40 (queue2) task1 Lesson 40 queue2 for review Jun 13, 2024

@Override
public String toString() {
return this.name().toLowerCase();
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

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

на будущее - для такого логичнее строковое поле завести. Ибо ключи енама менять зачастую проблематично - особенно, если они в бд храняться. А вот поле можно в любом удобном виде перекручивать, в зависимости от нужд бизнеса

Даже если изначально эти значения взаимовыводимы

}
}

public List<Task> getAllTasks() {
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

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

У тебя Task содержится в названии класса. Нет нужды дублировать это слово в каждом методе

return List.copyOf(tasks);
}

public boolean acceptSingleTask(Task acceptedTask) {
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

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

Про Task написал выше. То, что он тут single - понятно из сигнатуры метода:)

return false;
}

public boolean acceptAllTasks(Collection<? extends Task> incomingTasks) {
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

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

Все же Many, а не All. Я понимаю, что тут ассоциация с addAll у коллекций могла сыграть. Но коллекции и бизнес-логика - они в чутка разных мирах живут:)

Вполне хватило бы перегрузки под accept() или acceptMany(). Я предпочитаю последний вариант, но это вкусовщина. acceptAll() - тоже имеет право на жизнь, но выглядит крайне непривычно

return canceledTasks;
}

public Task lookNextTask() {
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

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

и зачем на него смотреть?) Обычно getNext()

return tasks.peek();
}

public boolean haveTask() {
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

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

скорее has. Опять же, мб hasNext

private String getTaskStatusMessage(Task task, TaskStatus status) {
return "Task <%s> %s".formatted(task.getName(), status);
}
} No newline at end of file
Copy link
Copy Markdown
Owner

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