Назад к словарю
Метрики и архитектура

Сложность кода

Количественная мера того, насколько сложно понять, протестировать и поддерживать код, основанная на факторах ветвления, глубины вложенности и зависимостей.

Определение

Сложность кода измеряется различными метриками: Cyclomatic Complexity (количество независимых путей), Cognitive Complexity (мера понятности от Sonar), метрики Halstead (на основе операторов и операндов), Lines of Code. Высокая сложность коррелирует с высоким уровнем дефектов и длительным временем разработки. Инструменты SonarQube, ESLint, diffray измеряют и отмечают сложный код.

Почему это важно

Исследования показывают, что функции с цикломатической сложностью >10 имеют в 4 раза больше багов. Сложный код труден для тестирования (требует больше тест-кейсов), ревью (легко пропустить проблемы) и модификации (высокий риск регрессии).

Пример

Функция с 15 if/else ветками, 4 вложенными циклами и 3 try/catch блоками имеет высокую сложность. Рефакторинг в меньшие, сфокусированные функции с чёткими ответственностями снижает сложность.

Связанные термины

code complexitycomplexity metricsMcCabe complexitycognitive complexityreduce complexity

Автоматизируйте код-ревью с diffray

Мульти-агентная AI-система для код-ревью. Находит баги, уязвимости и проблемы архитектуры автоматически.