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.