-
Notifications
You must be signed in to change notification settings - Fork 1
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
HW05. Магазин книг. Громов Павел #4
base: master
Are you sure you want to change the base?
Conversation
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.
- Пожалуй, не очень хорошо, что многие сущности подвешены и ни с какими другими не связаны никаким отношением.
CustomerService
иPayService
не просто используютсяCustomerController
(как локальная переменная или каким-то другим способом). Кажется, чтоCustomerController
агрегирует их. Мб, тут даже лучше подойдет более сильная связь -- композиция. Аналогично для других сущностей.- Когда будете поправлять предыдущий пункт, учтите, что дублировать ассоциации и поля не стоит. На ассоциациях вполне можно писать имя поля, посмотрите примеры.
- Не совсем понятно почему
OAuthChecker
агрегирует в себе все контроллеры. Из диаграммы можно предположить, что львиная часть логики Либо название не отражает суть, либо что-то напутано. - Почему-то у Вас не список желаемого (wishlist), а что-то про мытье (washlist)
- Вы уверены, что можно добавить книгу в список желаемого конкретного пользователя, не зная о нем ничего? Я про то, что
CustomerController
никак не может вaddBookToWashList
узнать ничего о пользователе. Мб, все-таки есть либо отношения между контроллерами, либо как-то данные должны передаваться. Вообще, это замечание распространяется на всю работу: хорошо, что используете существующие паттерны, не очень хорошо, что из-за этого многие детали скрываются и все слишком упрощается. - Вы точно уверены, что хранить пользовательские пароли в виде строки -- хорошая идея?)
- Мне непонятно как из
OAuthChecker
можно осуществить поиск по каталогу или по всей базе книг. - Только id недостаточно для добавления отзыва к книге (
CatalogService
) - Я не нашел
PaymentMethod
. Ок, предполагаю, что это какой-то enum: одного значения enum недостаточно, чтобы полностью описать метод оплаты. Например, при оплате банковской картой может потребоваться много информации. - Напоминаю, что должна быть возможность размещения администраторами редакторских отзывов. Одного
status: Boolean
для реализации этого точно недостаточно
Мне показалось, что неудобно будет, если от каждой
Всегда не понимал тонкую разницу между агрегацией и композицией, так как они очень похожи. Если я правильно понял (нагуглил), то это верно?
В общем, идея была такая, Сейчас сделал так: есть специальный контроллер, который принимает данные, проверяет, может ли выполнить данный запрос (проверяет логин/пароль пользователя). А после передает выполнение одному из контроллеров.
))))
Идея была в следующем: все необходимые данные приходят в запросе (как в REST), поэтому доставать пользователя из базы не было смысла, так как нам приходит его
Исправил как массив символов
Скорее всего Вы имели в виду
Добавил!
Добавил |
Да, агрегация -- это отношение "содержит", композиция -- это отношение "состоит из".
Это скорее общее замечание про то, что не стоит хранить пароли в виде строк и лучше хранить их в захешированном виде. Со всем остальным более менее согалсен, исправления засчитываю |
No description provided.