Size: a a a

2021 July 10

A

Artur in ctodailychat
легче будет развивать
источник

A

Artur in ctodailychat
тестировать
источник

СА

Сергей Аксёнов... in ctodailychat
Или в терминах гексагональной архитектуры, и контроллер, и репозиторий - это инфраструктурные адаптеры, но первый - транспортный (потому что веб), а второй - к БД.
источник

A

Artur in ctodailychat
ну в pure MVC 2010 годов никакого инфраструктурного слоя не было, был DAO, потом стали использовать Repository, но слой называли DAO, а не инфраструктурный.

почитаю, спасибо. ушел
источник

ИМ

Илья Макеев... in ctodailychat
В контроллере сервис, в сервисе репозиторий, полностью корректно. У нас в вебе пользователя берут из кук, поэтому всегда можно придумать сервис, который без передачи параметра будет возвращать текущего пользователя, если он залогинен.
источник

ИМ

Илья Макеев... in ctodailychat
а вот это такое: внешнему коду нужно знать устройство класса внутри зависимости
источник

ИМ

Илья Макеев... in ctodailychat
контроллер это просто вызывалка нескольких методов сервиса, возможно еще обработка ошибок и логгирование где-то здесь же.
источник

ИМ

Илья Макеев... in ctodailychat
при таком подходе можно переиспользовать сервис в какой-нибудь другой вызывалке без потерь
источник

СА

Сергей Аксёнов... in ctodailychat
Я не про аутентикацию, а если мне например надо контент другого пользователя получить
источник

ИМ

Илья Макеев... in ctodailychat
getContent(userId, filterA, filterB)
источник

СА

Сергей Аксёнов... in ctodailychat
Вообще кажется, что я наткнулся на красивое решение: в контроллере оперировать только UserID, а все проблемы с тем, существует ли он - отдать сервису.
источник

ИМ

Илья Макеев... in ctodailychat
ну да
источник

ИМ

Илья Макеев... in ctodailychat
и пусть он исключения тровит
источник

ИМ

Илья Макеев... in ctodailychat
а контроллер их логгирует
источник

AA

Anri Asaturov in ctodailychat
Щас тебя затравят за валидацию не в контроллере
источник

СА

Сергей Аксёнов... in ctodailychat
Начинается все с GET /content/?byUserId=X Там же где-то куки или токен, но из них другой юзер порождается.
источник

ИМ

Илья Макеев... in ctodailychat
а почему она должна быть в контроллере?
источник

СА

Сергей Аксёнов... in ctodailychat
Я могу валидировать сам ID. Что он числовой и больше нуля. Проверка, что такой юзер вообще существует - это, строго говоря, уже не валидация.
источник

ИМ

Илья Макеев... in ctodailychat
в других местах при вызве метода сервиса не нужно валидировать данные?
источник

ИМ

Илья Макеев... in ctodailychat
ну воооообще))) если есть фреймворк и в нем есть что-то такое https://symfony.com/doc/current/validation/custom_constraint.html то вполне можно сделать валидатор юзерайди, который сразу все сделает)))
источник