Глубокая вложенность
ID: deep_nesting | Степень критичности: Низкая (по умолчанию)
Идентифицирует блоки кода (if, for, while и т.д.), которые имеют слишком большую вложенность.
Почему это «запах»
Код с глубокой вложенностью экспоненциально сложнее читать и понимать. Часто это признак того, что функция делает слишком много или что логику можно упростить.
Как исправить
- Guard Clauses: Используйте ранний возврат, чтобы избежать блоков
elseи уменьшить вложенность. - Extract Function: Вынесите внутренний вложенный блок в новую функцию.
- Flatten Logic: Пересмотрите логику, чтобы понять, можно ли выразить ее проще.
Конфигурация
yaml
rules:
deep_nesting:
severity: low
max_depth: 4ESLint правило
Этот детектор доступен как правило ESLint для получения обратной связи в реальном времени.
javascript
// eslint.config.js
export default [
{
rules: {
'@archlinter/no-deep-nesting': 'warn',
},
},
];Смотрите Интеграция с ESLint для инструкций по настройке.
Параметры по умолчанию
max_depth:4- максимальная глубина вложенности блоков кода