Что такое когнитивная сложность кода
Python
Senior
Без компании
Что такое когнитивная сложность кода
Ответы
Когнитивная сложность — это метрика, оценивающая, насколько сложно понять и поддерживать код. В отличие от цикломатической сложности (которая считает ветвления), она учитывает вложенность, логические операторы, прерывания потока (break/continue) и другие факторы, усложняющие восприятие.
**Пример:**
```
# Высокая когнитивная сложность
def process_data(data):
result = []
for item in data:
if item.is_valid():
for subitem in item.values:
if subitem > 0:
result.append(subitem * 2)
else:
continue
else:
result.append(None)
return result
```
**Как снизить:**
- Уменьшать вложенность (early returns, guard clauses).
- Разбивать на мелкие функции.
- Использовать comprehensions или встроенные функции.
**Инструменты:**
- `radon cc` (Python) или плагины для IDE (SonarQube, PyCharm).