Как правильно обработать результат оповещенияЗавершения при ПоказатьВопрос? В начале процедуры писать: Если

Результат <> КодВозвратаДаилога.Да Тогда
Возврат;
КонецЕсли;
// ТелоОбработкиЗавершение;
....

Или

Если Результат = КодВозвратаДаилога.Да Тогда
//ТелоОбработкиЗавершение;
...
КонецЕсли;

Мне первый больше нра, но как принято?

16 ответов

30 просмотров

Тут думаю что дело вкуса и по ситуации. Допустим если внутри код не большой то можно второй. Но зачастую там код больше нескольких строк и тогда первый лучше смотрится так как сразу отсекает не нужное и завершает работу процедуры в отличии второго вариант. Большой если тогда не очень смотрится. Особенно если внутри они будут.

да в целом без разницы. главное чтоб по результату выполнялось то что нужно. Просто в первом варианте ты сразу обрубаешь что не нужно например Отмена - сразу отбой и досвидули

Мне второй вариант больше нравится. А вообще - вопрос холиварный.

Юрий-Старовойтов Автор вопроса
Сергей Назаренко
Мне второй вариант больше нравится. А вообще - воп...

Мне понравилось обоснование Андрея выше. Так же рассуждаю. Если что изменять нужно будет, изменения будут не внутри условия.

ТелоОбработки вынести в отдельную процедуру, и прекратить думать о всякой ненужной и неважной фигне

Юрий-Старовойтов Автор вопроса
santjaga
ТелоОбработки вынести в отдельную процедуру, и пре...

Так тело обработки это и есть вызов говорящих процедур, к чему еще 1 слой стека вызова?

Юрий Старовойтов
Мне понравилось обоснование Андрея выше. Так же ра...

А я предпочитаю иметь единственный выход из метода. Так сложнее упустить что-то из виду.

Юрий Старовойтов
Ну вот вполне читаемо же

Я ж говорю - тема холиварная. Если бы код обработки был внутри условия, то на одну строку кода было бы меньше, и читабельность (как на мой субъективный взгляд) была бы выше.

Юрий-Старовойтов Автор вопроса
Сергей Назаренко
Я ж говорю - тема холиварная. Если бы код обработк...

Про выход соглашусь. Но, например, править код дорабатывая, вне скобок условного оператора будет проще (когнитивно)

Юрий Старовойтов
Ну вот вполне читаемо же

Я всегда именно так пишу) Всё понятно, всё читаемо. Не выполнилось условие - возврат, выполнилось - пошли дальше

Сергей Назаренко
Я ж говорю - тема холиварная. Если бы код обработк...

Холивар, да Но по-моему читабельнее когда явно прописан Возврат

Юрий Старовойтов
Про выход соглашусь. Но, например, править код дор...

Ага. А потом долго думать, почему до Вашего кода управление не доходит. И вдруг обнаружить, что тремя экранами выше, в восьмиэтажном условии кто-то Возврат воткнул. Как по мне, как раз наоборот - удобнее править код внутри блока если. Т.е. если условие выполняется, то этот код должен отработать. В других случаях - можно и не заглядывать внутрь условия.

Юрий-Старовойтов Автор вопроса
Сергей Назаренко
Ага. А потом долго думать, почему до Вашего кода у...

Тем временем, выше Рустам подсказал по поводу предварительных проверок. И я в другом участке кода убрал одни скобки условного оператора обрамляющие много строк. Перенес проверку сразу за первой проверкой, как еще одну. Стало читабельней, т.к. избавился от вложенного условия. Пишу больше для себя, чтобы сформулировав самому определиться и идти дальше. Дело вкуса, возможно.

Сергей Назаренко
Ага. А потом долго думать, почему до Вашего кода у...

По этому процедуры должны быть максимально атомарны и самодостаточны. Когда в них начинают добавлять не связанные вещи это и приводит к тому что описали.

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

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

Добрый вечер, Пока не совсем понимаю как наладить общение между телеграм ботом и ПО для работы с сим боксом. По самому боту так понял: - Нужен некий баланс, который можно поп...
Magic
6
Объясните, пожалуйста, почему компилятор ругается на использование в условии неинициализированной переменной: int x; Task.Run(async () => { x = await somefunc(); }).Wait...
Александр
5
Всем привет. Ребята, подскажите, пожалуйста. у ботов есть ограничение на отправку сообщений - 30 сообщений в секунду, эти ограничения накладываются на все сообщения? или на со...
Artem Stormageddon
4
Блин, ребята, сори за тупые вопросы. А можно ли как-то открыть вебапку по нажатию на кнопку в меню(которое появляется слева, команды)?
Artem Stormageddon
3
Коллеги, может знает кто, можно ли цвет бейджа счётчика в BackendMenu менять без бубнов?
Alex Blaze
3
а плаксы из-под питона умеют только в комфортных условиях что-то выдавить из себя?)
Lencore
9
Привет!) Кто как юзает переменные в строках?) Чисто ради интереса Вот так: echo "У меня {$bananasAmount} бананов"; Или вот так: echo "У меня ${bananasAmount} бананов";
Виталий
3
Но, может, есть уже проверенная? Наши требования такие: 1. Сообщения должны приходить из Инста в CRM оду 2. Должна быть возможность подключить несколько экаунтов Инстаграм. Р...
Alexander Sharoiko MSE / Александр Шаройко
13
разработчик ботов скидывает портфолио, боты которые он уже создал. А вот как узнать что это именно он их создал?
Gosudar
4
Это может быть все-таки не флудвейт? у меня ботфазер принимает изменения и отображает даже что они изменились, на видео видно что он прислал якобы уже измененное описание, н...
OVERLINK
13
Карта сайта