Цикломатическая сложность '267' лучше?
Я разработал приложение в.NET с использованием C#.
Используя опцию "Рассчитать метрики кода", я получил показатель цикломатической сложности "267" с 2348 строками кода и глубиной наследования = 7, сцеплением классов = 150 и индексом ремонтопригодности = 80.
Я знаю, чем ниже цикломатическая сложность, тем лучше. Хотя я не знаю остальных параметров, я хотел бы знать, лучше ли цикломатическая сложность 267 или нет?
1 ответ
Под цикломатической сложностью обычно понимается количество независимых путей в вашем коде. Это измеряется по следующей формуле в Visual Studio:
Complexity = Edges - Nodes + 1
Для любого данного метода 25 считается опасно высоким и приводит к возникновению ошибки в Visual Studio. В идеале вы хотите, чтобы цикломатическая сложность была как можно ниже. Попробуйте нацелиться на 3-4 и максимизировать на отметке 10.
Для всего проекта это число, вероятно, не имеет достаточного значения для сравнения между отдельными проектами. Если вы проводите рефакторинг кода, вы можете использовать его в качестве показателя, чтобы определить, влияете ли вы на снижение общей сложности.
Тем не менее, будьте осторожны с использованием этих типов метрик в качестве единственного индикатора состояния проекта. Без четкого вопроса или цели они могут ввести вас в заблуждение и потратить время или что-то еще хуже. Возможно, вам лучше сосредоточиться на другом показателе, таком как покрытие кода, прежде чем пытаться уменьшить цикломатическую сложность.
Вы можете прочитать больше о цикломатической сложности здесь:
http://msdn.microsoft.com/en-us/library/ms182212.aspx
https://en.wikipedia.org/wiki/Cyclomatic_complexity