Зарегистрироваться | Поиск |
Результаты опроса: Какой вариант вы бы предпочли? И почему? | |||
validateAndWrite() + validateAndWriteNoThrow() | 1 | 8.33% | |
validateAndWriteOrThrow() + validateAndWrite() | 0 | 0% | |
validateAndWrite(boolean noThrow = false) | 1 | 8.33% | |
validateAndWrite(boolean noThrow = true) | 0 | 0% | |
validateAndWrite(boolean throwIfError = false) | 0 | 0% | |
validateAndWrite(boolean throwIfError = true) | 2 | 16.67% | |
я предложил свой вариант в этой ветке | 2 | 16.67% | |
затрудняюсь ответить, просто хочу посмотреть результаты опроса | 6 | 50.00% | |
Голосовавшие: 12. Вы ещё не голосовали в этом опросе |
|
Опции темы |
|
02.08.2021, 09:58 | #1 |
Участник
|
Да ну?!
т.е. runbase с эго validate и run - "это другое" Цитата:
создание методов вовсе НЕ приводит к дублированию кода. Цитата:
это НЕ проблема самого CodeStyle. Насчет параметра. Правильно говоришь - скорее всего параметров будет много. вызовов метода с параметрами будет много. т.е. вот таких конструкций будет дофига: X++: myObj.myMethod(voucher, inventLocationId, true, inventColorId, false, params); и как понять допустимо ли здесь игнрорировать результат? поэтому код будет усеян уродливыми конструкциями вида X++: if( myObj.myMethod(voucher, inventLocationId, true, inventColorId, false, params) ) { throw Error::Error } X++: myObj.myMethodOrThrow(voucher, inventLocationId, true, inventColorId, params); какая постановка? этого вопроса "Какой вариант вы бы предпочли? И почему?"? как может быть такая постановка некорректной? Цитата:
Сообщение от Владимир Максимов
Как правило, подобные методы редко продумываются на этапе создания архитектуры проекта. Они возникают "естественным путем" по мере возникновения в них необходимости. Соответственно и варианты реализации также возникают "по месту". Вот что в данном случае покажется более уместным, то и делают
но это не повод не задавать вопросы и это не повод не выполнять рефакторинг. не так ли? |
|
02.08.2021, 14:27 | #2 |
Участник
|
Да. Логика другая. Это же не методы ValidateAndRun() и ValidateAndRunNoThrow(). В терминах исходного вопроса тут уместен был бы ValidateNoThrow()
Цитата:
Цитата:
1. Рассматриваемый здесь CodeStyle - не стандарт. Собственная разработка 2. При создании методов "естественным путем" требуется рефакторинг, который, в свою очередь, требует времени и сил. Вот сильно сомневаюсь, что с этим станут заморачиваться Т.е. это все-таки проблемы той команды, которая этот самый CodeStyle будет поддерживать... Цитата:
А вот если задача оказалась не разовая, а часто повторяется, вот в этом случае уже повод задуматься о рефакторинге и каком-то более удобном способе вызова Цитата:
Цитата:
Т.е. в исходной постановке задачи в данном теме - это метод ValidateWrite() скопировать в метод ValidateWriteNoThrow(), а в самом ValidateWrite() вывести исключение, если проверка с ошибкой Не надо "копать глубже" и делать ValidateAndWriteNoThrow() - это уже явно лишнее и избыточное решение В теории. На практике возможны варианты. И вот не знаю, к счастью или к сожалению. Нет однозначного ответа
__________________
- Может, я как-то неправильно живу?! - Отчего же? Правильно. Только зря... |
|
|
|