Управляющие конструкции не должны быть вложены слишком глубоко (NestedStatements)¶
Тип | Поддерживаются языки |
Важность | Включена по умолчанию |
Время на исправление (мин) |
Теги |
---|---|---|---|---|---|
Дефект кода |
BSL OS |
Критичный |
Да |
30 |
badpractice brainoverload |
Параметры¶
Имя | Тип | Описание | Значение по умолчанию |
---|---|---|---|
maxAllowedLevel |
Целое |
Максимальный уровень вложенности конструкций |
4 |
Описание диагностики¶
Вложенные операторы "Если, "Для", "Для Каждого", "Пока" и "Попытка" являются ключевыми ингредиентами для создания так называемого "спагетти-кода".
Такой код трудно читать, рефакторить и поддерживать.
Примеры¶
Неправильно
Если Чтото Тогда // Допустимо - уровень = 1
/* ... */
Если ЧтоТоЕще Тогда // Допустимо - уровень = 2
/* ... */
Для Ном = 0 По 10 Цикл // Допустимо - уровень = 3
/* ... */
Если ОпятьУсловие Тогда // Допустимо - уровень = 4, лимит достигнут, но не превышен
Если ЕщеЧтото Тогда // Уровень = 5, Превышен лимит
/* ... */
КонецЕсли;
Возврат;
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецЕсли;
Источники¶
Сниппеты¶
Экранирование кода¶
// BSLLS:NestedStatements-off
// BSLLS:NestedStatements-on
Параметр конфигурационного файла¶
"NestedStatements": {
"maxAllowedLevel": 4
}