есть 3 функции
изменить яркость, изменить контрастрость, инвертировать цвета
сейчас я для всех 3 функций обработки изображения сделал единый url (пост запрос приходит на /image/ и содержит в себе 3 поля
— id файла,
—тип операции (яркость/контрастность/инверсия),
— и json строку со всеми параметрами которые специфичны для каждой операции)
потом это сохраняется в бд, приходит воркер и каскадом ифов решает что делать
как это правильно реализовать?
OpenClose принципом надо пользоваться вместо if'ов.
ну это может быть на уровне сериализации, или еще где. тут вопрос какие правила ты хочешь изолировать. но особенност контроллера в том что он задает порядок действий но не содержит в себе правил - все проверки или трансформации делигируются другим участникам процесса. можно на это смотреть с другой стороны - тестирование. Если у тебя контроллер не имеет логики - то его можно покрыть одним позитивным приемочным тестом + статическим анализом. Мол штуки типа... if (something === null) { doSomethingWith(something); } такую логику проверит стат анализ а потому нам пофигу. так вот, мало логики - можно пушить больше зависимостей. Много зависимостей - надо уменьшать количество тест кейсов (за счет того что ты убираешь логику в зависимости).
не вижу профита, вот где для меня профит actionAdmin(){ return action1(); } actionUser(){ return action2(); } и все это в разных классах контроллерах
а оно тебе надо?)
У меня есть контроллер, и переиспользование всего того, что внутри контроллера, но просто с другим адресом - очень маловероятный кейс
ну как минимум я могу использовать этот сервис в другом сервисе. я знаю что мне не потребуется что то из фарша реквеста
Ну вот обертка для простой логики сервиса, а есть ли смысл вообще такое тестами покрывать? Это тривиальный кейс. Опять таки, это будет с моками и прочим, что делает тест несколько непростым.
тебе понадобится ягни
понадобится "You Aint gonna need it" звучит интересно
а почему вот для тебя, скажем именование переменных и классов по ddd имеет смысл, а именование тех же ендпоинтов не имееет смысла чтобы они также были читаемы и понятны?
Обсуждают сегодня