Перейти к содержанию

Управляющие конструкции не должны быть вложены слишком глубоко (NestedStatements)

Тип Поддерживаются
языки
Важность Включена
по умолчанию
Время на
исправление (мин)
Теги
Дефект кода BSL
OS
Критичный Да 30 badpractice
brainoverload

Параметры

Имя Тип Описание Значение
по умолчанию
maxAllowedLevel Целое Максимальный уровень вложенности конструкций 4

Описание диагностики

Вложенные операторы "Если, "Для", "Для Каждого", "Пока" и "Попытка" являются ключевыми ингредиентами для создания так называемого "спагетти-кода".

Такой код трудно читать, рефакторить и поддерживать.

Примеры

Неправильно

Если Чтото Тогда                  // Допустимо - уровень = 1
  /* ... */
  Если ЧтоТоЕще Тогда             // Допустимо - уровень = 2
    /* ... */
    Для Ном = 0 По 10 Цикл          // Допустимо - уровень = 3
      /* ... */
      Если ОпятьУсловие Тогда       // Допустимо - уровень = 4, лимит достигнут, но не превышен
        Если ЕщеЧтото Тогда        // Уровень = 5, Превышен лимит
          /* ... */
        КонецЕсли;
        Возврат;
      КонецЕсли;
    КонецЦикла;
  КонецЕсли;
КонецЕсли;

Источники

Сниппеты

Экранирование кода

// BSLLS:NestedStatements-off
// BSLLS:NestedStatements-on

Параметр конфигурационного файла

"NestedStatements": {
    "maxAllowedLevel": 4
}