Skip to content

Controllers films users#1

Merged
dendzim merged 4 commits intomainfrom
controllers-films-users
Oct 21, 2025
Merged

Controllers films users#1
dendzim merged 4 commits intomainfrom
controllers-films-users

Conversation

@dendzim
Copy link
Owner

@dendzim dendzim commented Oct 18, 2025

Реализована функциональность согласно ТЗ спринта 10.
Добавлены тесты валидаций и логирование.

throw new ValidationException("Фильм с id = " + newFilm.getId() + " не найден");
}

private void filmValidation(Film film) {

Choose a reason for hiding this comment

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

Методы лучше называть с использованием глагола, т.к. по сути это некоторые действия. Т.е. здесь лучше
validateFilm(Film film)

log.warn("Не указан id");
throw new ValidationException("Id должен быть указан");
}
if (films.containsKey(newFilm.getId())) {

Choose a reason for hiding this comment

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

Хотел бы предложить тебе методику написания метода с помощью так называемого раннего выхода (early return). Смысл в том, чтобы выходить из метода сразу при невыполнении условий, необходимых для успешного выполнения метода. Код будет более легким для чтения.
https://habr.com/ru/articles/348074/

Твой метод можно переписать

@PutMapping
public Film update(@Valid @RequestBody Film newFilm) {
    if (newFilm.getId() == null) {
        log.warn("Не указан id");
        throw new ValidationException("Id должен быть указан");
    }
    if (!films.containsKey(newFilm.getId())) {       
        log.warn("Фильм с указанным id не найден");
        throw new ValidationException("Фильм с id = " + newFilm.getId() + " не найден");
    }
    validateFilm(newFilm);
    Film oldFilm = films.get(newFilm.getId());
    oldFilm.setDescription(newFilm.getDescription());
    oldFilm.setDuration(newFilm.getDuration());
    oldFilm.setName(newFilm.getName());
    oldFilm.setReleaseDate(newFilm.getReleaseDate());
    log.info("Данные о фильме: {} обновлены", oldFilm);
    return oldFilm;
}

Copy link

@VadimZharkov VadimZharkov left a comment

Choose a reason for hiding this comment

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

Хорошая работа, все сделано верно. Оставил пару стилистических рекомендаций.

Исправлен нейминг валидирующих методов
@dendzim
Copy link
Owner Author

dendzim commented Oct 19, 2025

Благодарю за ревью. Такой подход и вправду делает кот читабельнее.

@dendzim dendzim merged commit 597e3be into main Oct 21, 2025
2 checks passed
@dendzim dendzim deleted the controllers-films-users branch October 21, 2025 11:37
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

Comments