Как интерпретировать метрики кода (рассчитанные с помощью SourceMonitor)

После прочтения ответов на вопрос "Вычислить метрики кода" Я установил инструмент SourceMonitor и рассчитаны некоторые показатели.

Но я понятия не имею, как их интерпретировать.

Какое "хорошее" значение для метрики

  • "Процентные отчеты о ветвях"
  • "Методы для каждого класса"
  • "Средние значения для каждого метода"
  • "Максимальный метод или функция Сложность "

Я не нашел никаких намеков в документации, может ли кто-нибудь помочь мне?

Ответы

Ответ 1

SourceMonitor - отличный инструмент.

"Методы для каждого класса" полезны тем, кто хочет, чтобы их классы соответствовали хорошим принципам OO (слишком много методов указывают на то, что класс может принимать больше, чем должен).

"Средние выражения для метода" полезно для общего понимания того, насколько велики каждый метод. Более полезным для меня является информация о методах с слишком большим количеством операторов (дважды щелкните по модулю для более тонкой детали).

Сложность функции полезна для определения того, насколько неприятен код. Воистину, я использую эту информацию больше всего. Это информация о том, насколько сложна самая неприятная функция в модуле (по крайней мере, в соответствии с циклической сложностью). Если вы дважды щелкните по модулю/файлу, вы можете узнать, какой именно метод является настолько плохим.

Ответ 2

Как общее правило, цикломатическая сложность 10 или меньше - это то место, где вы хотите быть. CC от 11 до 20 примерно так же высока, как вы хотите получить в большинстве случаев: как только вы получите выше 20, вы с большей вероятностью столкнетесь с проблемами при обнаружении и исправлении дефектов, и как только вы получите более 50, вы обычно смотрите по методу, который необходимо переделать сейчас.

Имейте в виду, что это рекомендации. Возможно иметь метод с CC 25, который упрощен, как вы можете его получить; вы просто захотите быть более осторожными с этими методами, когда вам нужно их обновить.