Ранний выход/возврат
Если встречаете вот такой код:
Если (Условие) Тогда // Дальше выполняется // какой-то длинный код // с множеством методов КонецЕсли;
Или вот такой:
Если (Условие) Тогда Если Не (ДругоеУсловие) Тогда // Дальше выполняется // какой-то длинный код // с множеством методов КонецЕсли; КонецЕсли;
В нем можно легко запутаться, так как нужно постоянно держать в голове контекст выполнения условия. А если код еще и длинный, то можно забыть, что за условия были вверху.
Вместо этого лучше использовать ранний выход или охранные выражения:
Если Не (Условие) Или (ДругоеУсловие) Тогда Возврат; КонецЕсли; // Дальше выполняется какой-то длинный код
Такой код проще читать. Он вначале задает условия прежде чем переходить к детялям. В этом случае у нас не будет лишней вложенности.
Пример:
Код:
Если ЭтоНовый Тогда Если Не ЭтоГруппа Тогда ПодготовитьФормуОбъекта(); УстановитьСвойстваТабличнойЧасти(); УправлениеФормой(); // Еще какой-то код КонецЕсли; КонецЕсли;
меняем на:
Если Не ЭтоНовый Или ЭтоГруппа Тогда Возврат; КонецЕсли;
ПодготовитьФормуОбъекта(); УстановитьСвойстваТабличнойЧасти(); УправлениеФормой(); // Еще какой-то код
Особенности:
1. Если проверок становится много (больше 5), то лучше их выделить в отдельную функцию условие:
Если Не НужноОбработатьОбъект() Тогда Возврат; КонецЕсли; // Дальше выполняется // какой-то длинный код // с множеством методов
2. Будьте внимательны с кодом:
Если (Условие) Тогда // Какой-то код КонецЕсли; // Дальше другой код
В этом случае использование раннего выхода не всегда оправдано.
3. Лучше выделять условия по одному, чтобы не запутаться и не потерять. Допустимо сначала сделать последовательные условия, например:
Если (Условие) Тогда Возврат; КонецЕсли; Если Не (ДругоеУсловие) Тогда Возврат; КонецЕсли; // Дальше выполняется // какой-то длинный код // с множеством методов
Лайк, шер, сабскрайб, репост