Метрики сложности кода

Количество строк кода

LOC ( Lines of Code), или Количество строк, является самой грубой мерой сложности. Это спорный вопрос , есть ли прямая связь между количеством строк кода и сложностью приложения, но косвенная корреляция очевидна. В конце концов, программа с 5 строками, вероятно, проще, чем программа с 5 миллионами.

Цикломатическая сложность или Cyclomatic Complexity

Цикломатической сложность вычисляется легко, путем суммирования всех узлов таких как if, while, for и др. внутри и добавляя 1.

Или по формуле
M = E − N + 2P,
где:
M = цикломатическая сложность,
E = количество рёбер,
N = количество узлов,
P = количество компонент связности.

Узлами графа являются условные операторы

  • if statement
  • while statement
  • for statement
  • case statement
  • catch statement
  • && and || boolean operations
  • ?: ternary operator and ?: Elvis operator.
  • ?. null-check

Чем больше операторов в функции (коде), тем выше Цикломатическая сложность.

Т.е. высокие числа плохие и низкие числа хороши. Цикломатическую оценку сложности кода можно использовать, чтобы получить представление о том, насколько трудно ваш код тестировать, поддерживать и устранять неполадки. А также для определения вероятности возникновения ошибок. На высоком уровне мы определяем значение цикломатической сложности, подсчитывая количество решений, принятых в исходном коде.

Когнитивная сложность

Метрика визуальной оценки (восприятия) сложности кода. Пример:

Подсчет когнитивной сложности

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *