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

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

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

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

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

— id файла,

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

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

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


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

11 ответов

18 просмотров

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 имеет смысл, а именование тех же ендпоинтов не имееет смысла чтобы они также были читаемы и понятны?

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

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

Мужики и девушки, привет) в Вelphi xe7 в настройках во вкладке "Editor Options" далее " Color" есть список: "Elements", открыв который мы можем настраивать отображение разных...
Kraszx
14
Добрый вечер. Есть вопрос, а может и предложение. Был у меня диалог в другой группе о делфи и я задался вопросом: "А нельзя ли в делфи цвет //коментария и {комментария} сде...
Kraszx
24
Я вот подумал. SSE выполняет операции максимум с 64-битной точностью. А FPU - всегда с 80-битной. Разве не должно быть FPU точнее тогда?
The Bird of Hermes
13
как быть с принтером? такой подход прокатит?
zamtmn
12
Мдя, прикол, боевая сборка запускается (именно под отладчиком) после F9 примерно полторы минуты (97 секунд если быть точным). Начал копать - проблема детектится сразу - зависа...
Александр (Rouse_) Багель
38
Всем привет! Подскажи, пожалуйста, как передать в TComboBox сразу значение и id записи. На Delphi я делал так: ComboBox1.Items.AddObject('Какое-то значение', Pointer(id запис...
Евгений
13
Здравствуйте, вопрос по структурам данных. Были у вас случаи, когда пришлось писать деревья или двунаправленные списки?
/ /
50
Я не понимаю, это троллинг или что? Швабрика поддерживают, который буквально пишет на ассемблере взаимодействия с винапи. Я это ещё написал загрузчик и хоть что-то изучаю в о...
Shadow Akira
6
А вот это что за конструкция? Вернее, она тут нафига?
Serjone
10
Привет. Подскажите, как правильно сматчить лист фиксированного размера, чтобы компилятор не говорил мне о неполном паттерне? Допустим что-то такое [x', y'] = sort [x, y]?
Arseny
8
Карта сайта