Форум
.NET
Тема
Как правильно задавать вопросы
B
I
abc
U
X
3
X
3
H1
H2
H3
H4
H5
H6
Asm
C/C++
C#
Erlang
Haskell
IDL
Java
Lisp
MSIL
Nemerle
ObjC
OCaml
Pascal
Perl
PHP
Prolog
Python
Ruby
Rust
SQL
VB
Здравствуйте, MadHuman, Вы писали: MH>Здравствуйте, gandjustas, Вы писали: G>>А чем это принципиально лучше, чем: G>>[cs] G>>public static object GetThing(string arg1){ G>> //do work G>>} G>>//хэндлер для апи ендпойнта G>>public static object ProcApiRequest(string arg1, string arg2){ G>> if ( some condition for arg1) { G>> this.ModelState.AddModelError(nameof(arg1),"Condition failed"); G>> } G>> if ( some other condition for arg2) { G>> this.ModelState.AddModelError(nameof(arg2),"Condition failed"); G>> } G>> if(!this.ModelState.IsValid) { G>> return BadRequest(this.ModelState); G>> } G>> var result1 = GetThing(arg1); G>> var result2 = DoSomeOtherWork(result1); G>> return MakeOutPut(result2); G>>} G>>[/cs] G>>? MH>тем что, логика проверки аргумента arg1 довольно сложна (это не одна строчка для if как в упрощённом примере) и специфична именно для GetThing, и там уже реализована, тк функция используется не только для хандлера рест-апи ендпойнта. MH>в предлагаемом вами варианте логика проверки перенесена из GetThing в ProcApiRequest. это было бы ок, если она совсем простая, но она не совсем простая. MH>проверка внутри GetThing органична и реюзает часть внутренней логики. не так просто её взять и перенести. MH>и минус - в GetThing проверка всё равно нужно, т.к. GetThing не только для ProcApiRequest. MH>можно вынести логику валидации в отдельную функцию и реюзать и в GetThing и в ProcApiRequest, так будет уже лучше. MH>но было ощущение что кэтчем эксепшина из GetThing тоже норм. MH>не всегда хорошо чтоб каждое место использование функции вынуждало её менять/рефакторить.
Теги:
Введите теги разделенные пробелами. Обрамляйте в кавычки словосочетания с пробелами внутри, например:
"Visual Studio" .NET
Имя, пароль:
Загрузить
Нравится наш сайт?
Помогите его развитию!
Отключить смайлики
Получать ответы по e-mail
Проверить правописание
Параметры проверки …