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