-
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
Рефакторинг: лайки → оценки #31
Conversation
…ating # Conflicts: # src/main/java/ru/yandex/practicum/filmorate/dao/FilmStorage.java # src/main/java/ru/yandex/practicum/filmorate/dao/impl/FilmDbStorage.java # src/main/java/ru/yandex/practicum/filmorate/service/impl/UserServiceImpl.java
# Conflicts: # src/main/java/ru/yandex/practicum/filmorate/controller/FilmController.java # src/main/java/ru/yandex/practicum/filmorate/dao/FilmLikeStorage.java # src/main/java/ru/yandex/practicum/filmorate/dao/impl/FilmDbStorage.java # src/main/java/ru/yandex/practicum/filmorate/dao/impl/FilmLikeDbStorage.java # src/main/java/ru/yandex/practicum/filmorate/service/impl/FilmServiceImpl.java # src/main/java/ru/yandex/practicum/filmorate/service/impl/UserServiceImpl.java # src/test/java/ru/yandex/practicum/filmorate/storage/FilmDbStorageTest.java # src/test/java/ru/yandex/practicum/filmorate/storage/UserDbStorageTest.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.
Сделала ревью. Основные замечания, конечно, по алгоритму. В целом он понятен, при желании можно с ним разобраться, но я всё равно рекомендую ещё поработать над кодом. Для будущего точно будет полезно) Обязательно разбить на методы (если возникнут трудности, то можно прийти ко мне в личку, вместе подумаем), изменить названия некоторых переменных, изменить подход к комментированию.
В остальном коде никаких критичных замечаний нет, однако я всё же рекомендую внести предложенные изменения, т.к. они приближают код к коду реального проекта. Если есть вопросы/аргументы/ответы, то их лучше написать в ответ на мой комментарий в ПРе.
После завершения работы над ПРом, нужно сообщить мне об этом в личку) Приду и посмотрю ещё раз :)
src/main/java/ru/yandex/practicum/filmorate/controller/FilmController.java
Outdated
Show resolved
Hide resolved
src/main/java/ru/yandex/practicum/filmorate/dao/FilmStorage.java
Outdated
Show resolved
Hide resolved
src/main/java/ru/yandex/practicum/filmorate/service/FilmService.java
Outdated
Show resolved
Hide resolved
src/main/java/ru/yandex/practicum/filmorate/service/impl/UserServiceImpl.java
Outdated
Show resolved
Hide resolved
src/main/java/ru/yandex/practicum/filmorate/service/impl/UserServiceImpl.java
Outdated
Show resolved
Hide resolved
src/main/java/ru/yandex/practicum/filmorate/service/impl/UserServiceImpl.java
Outdated
Show resolved
Hide resolved
src/main/java/ru/yandex/practicum/filmorate/service/impl/UserServiceImpl.java
Outdated
Show resolved
Hide resolved
src/main/java/ru/yandex/practicum/filmorate/service/impl/UserServiceImpl.java
Outdated
Show resolved
Hide resolved
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/main/java/ru/yandex/practicum/filmorate/dao/FilmStorage.java
Outdated
Show resolved
Hide resolved
src/main/java/ru/yandex/practicum/filmorate/service/impl/UserServiceImpl.java
Outdated
Show resolved
Hide resolved
src/main/java/ru/yandex/practicum/filmorate/service/impl/UserServiceImpl.java
Outdated
Show resolved
Hide resolved
src/main/java/ru/yandex/practicum/filmorate/service/impl/UserServiceImpl.java
Show resolved
Hide resolved
src/main/java/ru/yandex/practicum/filmorate/service/impl/UserServiceImpl.java
Outdated
Show resolved
Hide resolved
src/main/java/ru/yandex/practicum/filmorate/dto/RecommendationsCurrentParams.java
Outdated
Show resolved
Hide resolved
src/test/java/ru/yandex/practicum/filmorate/integration/UserServiceTest.java
Show resolved
Hide resolved
src/test/java/ru/yandex/practicum/filmorate/storage/FilmDbStorageTest.java
Show resolved
Hide resolved
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.
На мой взгляд, код стал значительно понятнее) Хорошая работа!
В таблице film_like было добавлено целочисленное поле rating. При лайке фильма пользователь может поставить оценку от 0 до 10 (0 - пользователь решил не ставить оценку).
Были изменено поле long likes на double rating в Film и FilmDto. Рейтинг фильма рассчитывается как среднее арифметическое (сумма рейтингов / количество пользователей, оценивших фильм).
В предыдущей версии пользователь мог ставить несколько оценок одному и тому же фильму. Теперь при повторном лайке обновляется оценка, которую поставил пользователь. Написаны тесты.
Обновлен алгоритм получения рекомендаций. Для рекомендаций выбирается пользователь с наилучшим совпадениям по оценкам одних и тех же фильмов. Написаны тесты.