Skip to content

Глубокая вложенность

ID: deep_nesting | Степень критичности: Низкая (по умолчанию)

Идентифицирует блоки кода (if, for, while и т.д.), которые имеют слишком большую вложенность.

Почему это «запах»

Код с глубокой вложенностью экспоненциально сложнее читать и понимать. Часто это признак того, что функция делает слишком много или что логику можно упростить.

Как исправить

  • Guard Clauses: Используйте ранний возврат, чтобы избежать блоков else и уменьшить вложенность.
  • Extract Function: Вынесите внутренний вложенный блок в новую функцию.
  • Flatten Logic: Пересмотрите логику, чтобы понять, можно ли выразить ее проще.

Конфигурация

yaml
rules:
  deep_nesting:
    severity: low
    max_depth: 4

ESLint правило

Этот детектор доступен как правило ESLint для получения обратной связи в реальном времени.

javascript
// eslint.config.js
export default [
  {
    rules: {
      '@archlinter/no-deep-nesting': 'warn',
    },
  },
];

Смотрите Интеграция с ESLint для инструкций по настройке.

Параметры по умолчанию

  • max_depth: 4 - максимальная глубина вложенности блоков кода

Released under the MIT License.