2014-12-02 6 views
0

Я разработал приложение в .NET с использованием C#.Является ли Cyclomatic сложностью '267' лучше?

Использование «Рассчитать метрики кода» вариант, я получил цикломатическую сложности балл «267» с 2348 строк кода и глубины наследования = 7, класс сцепка = 150 и ремонтопригодность индекс = 80.

Я знаю, чем ниже цикломатическая сложность, тем лучше. Хотя я не знаю остальных параметров, я хочу знать, лучше ли цикломатическая сложность 267 или нет?

+1

Лучше, чем что? Вы не можете сказать, что что-то лучше или хуже, если сравнивать нечего. – Rik

+0

I * думаю * ниже лучше на все вышеперечисленное. Убедитесь, что вы следуете [SOLID] (http://en.wikipedia.org/wiki/SOLID_%28object-oriented_design%29). –

+0

Для индекса работоспособности более высокий - «значение индекса от 0 до 100, которое представляет относительную легкость обслуживания кода. Высокое значение означает лучшую ремонтопригодность. Значения с цветовым кодированием могут использоваться для быстрого выявления проблемных мест в вашем коде. Зеленый рейтинг составляет от 20 до 100 и указывает, что код имеет хорошую ремонтопригодность. Желтый рейтинг составляет от 10 до 19 и указывает, что код поддерживается умеренно. Красный рейтинг - это рейтинг от 0 до 9 и указывает на низкую ремонтопригодность ». ref: http://msdn.microsoft.com/en-us/library/bb385914.aspx – DavidWhitney

ответ

4

Цикломатическая сложность обычно относится к числу независимых путей через ваш код. Это измеряется по следующей формуле в 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

+1

Вы цифры применимы к циклической сложности одного метода, в то время как я предполагаю (надеясь), что OP говорит о цикломатическая сложность (по крайней мере) проекта. – Rik

+0

Хорошо, я изменю свое представление, чтобы это отразить. –

 Смежные вопросы

  • Нет связанных вопросов^_^