212 похожих чатов

Проектирую апи для сервиса пользователь загружает картинку и

есть 3 функции

изменить яркость, изменить контрастрость, инвертировать цвета

сейчас я для всех 3 функций обработки изображения сделал единый url (пост запрос приходит на /image/ и содержит в себе 3 поля

— id файла,

—тип операции (яркость/контрастность/инверсия),

— и json строку со всеми параметрами которые специфичны для каждой операции)

потом это сохраняется в бд, приходит воркер и каскадом ифов решает что делать


как это правильно реализовать?

11 ответов

23 просмотра

OpenClose принципом надо пользоваться вместо if'ов.

ну это может быть на уровне сериализации, или еще где. тут вопрос какие правила ты хочешь изолировать. но особенност контроллера в том что он задает порядок действий но не содержит в себе правил - все проверки или трансформации делигируются другим участникам процесса. можно на это смотреть с другой стороны - тестирование. Если у тебя контроллер не имеет логики - то его можно покрыть одним позитивным приемочным тестом + статическим анализом. Мол штуки типа... if (something === null) { doSomethingWith(something); } такую логику проверит стат анализ а потому нам пофигу. так вот, мало логики - можно пушить больше зависимостей. Много зависимостей - надо уменьшать количество тест кейсов (за счет того что ты убираешь логику в зависимости).

не вижу профита, вот где для меня профит actionAdmin(){ return action1(); } actionUser(){ return action2(); } и все это в разных классах контроллерах

а оно тебе надо?)

Michel Angelo
не вижу профита, вот где для меня профит actionAd...

У меня есть контроллер, и переиспользование всего того, что внутри контроллера, но просто с другим адресом - очень маловероятный кейс

Sergey P
а оно тебе надо?)

ну как минимум я могу использовать этот сервис в другом сервисе. я знаю что мне не потребуется что то из фарша реквеста

Sergey P
ну это может быть на уровне сериализации, или еще ...

Ну вот обертка для простой логики сервиса, а есть ли смысл вообще такое тестами покрывать? Это тривиальный кейс. Опять таки, это будет с моками и прочим, что делает тест несколько непростым.

razumovsky r
тебе понадобится ягни

понадобится "You Aint gonna need it" звучит интересно

Павел Г.
У меня есть контроллер, и переиспользование всего ...

а почему вот для тебя, скажем именование переменных и классов по ddd имеет смысл, а именование тех же ендпоинтов не имееет смысла чтобы они также были читаемы и понятны?

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта