Size: a a a

Software Design/Architecture/Zen

2021 May 31

V

Viktor in Software Design/Architecture/Zen
+
источник

СП

Сергей Предводителев... in Software Design/Architecture/Zen
Спорно, можно null, а можно кидать исключение. Кто как делает... часто встречаю и такое и такое мнение
источник

СП

Сергей Предводителев... in Software Design/Architecture/Zen
Спасибо всем за ответ на вопрос :)
источник

V

Viktor in Software Design/Architecture/Zen
Я бы все-таки разделил методы на find: ?Client и get: Client
источник

AZ

Artem Zakirullin in Software Design/Architecture/Zen
Все можно
источник

AZ

Artem Zakirullin in Software Design/Architecture/Zen
Но так удобнее
источник

V

Viktor in Software Design/Architecture/Zen
Не только удобнее, но и семантичнее
источник

AZ

Artem Zakirullin in Software Design/Architecture/Zen
Ага. Ну я думаю тут уже не раз поднимали вопрос семантики get, исключения и валидацию etc
источник

СП

Сергей Предводителев... in Software Design/Architecture/Zen
А как называть метод, который ищет по фильтру, то есть должен вернуть несколько объектов?
источник

СП

Сергей Предводителев... in Software Design/Architecture/Zen
findByUserId()
find()

Будет неконсистентно, что find возвращает один объект, а findByUserId несколько
источник

SB

Sergei Baikin in Software Design/Architecture/Zen
лучше так просто не делать
Не надо проводить операции над несколькими объектами за раз
источник

СП

Сергей Предводителев... in Software Design/Architecture/Zen
Я имел в виду методы, которые ищут несколько объектов
источник

SB

Sergei Baikin in Software Design/Architecture/Zen
ну поиск нескольких объектов это какаято шляпа обычно
Ибо за одну операцию не более одного аггрегата надо менять
а иначе вам всех их лочить придется
такая себе идея
источник

СП

Сергей Предводителев... in Software Design/Architecture/Zen
м... есть логика :)
источник

SB

Sergei Baikin in Software Design/Architecture/Zen
ну вы их для чего то достаете
наверно чтобы в бизнес логике задействовать
в итоге между временем когда достали + применили в бизнес логике они уже могут устареть и все пойдет по одному месту
источник

SP

Sergey Protko in Software Design/Architecture/Zen
это обычно "на чтение" и "на чтение" сущности не нужны и в целом это не входит в зону ответственности репозитория.

Сначала ты ищешь несколько айтемов по имени например. Потом там происходят джойны. Потом подзапросы. И почему-то это все еще называется условный UserRepository. Хотя он явно выборки делает на основе данных о которых знать не должен
источник

SF

Segmentation Fault in Software Design/Architecture/Zen
А что исключительного в том, что клиент не найден?
источник

СП

Сергей Предводителев... in Software Design/Architecture/Zen
спасибо!
источник

СП

Сергей Предводителев... in Software Design/Architecture/Zen
это получается, что в момент получения из репозитория - нужно делать блокировку в БД и затем иметь в репозитории метод, который эту блокировку снимает, либо при сохранении её убирать?
источник

SP

Sergey Protko in Software Design/Architecture/Zen
или операцию над агрегатом передавать в этот get условный, что бы оно там внутри само сохранило стэйт как надо.
источник