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

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

  • Тип: Дефект кода
  • Важность: Критичный
  • Включена по умолчанию: Да
  • Теги: badpractice, brainoverload

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

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

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

Примеры

Неправильно

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

Источники

Соответствие стандартам

Нет подтверждённых связей со стандартами.

Источник диагностики