Какой показатель качества кода важнее - между цикломатической сложностью или средним разветвлением? - PullRequest
0 голосов
/ 17 сентября 2018

Я впервые работал над показателями качества кода TICS, и у меня возник этот вопрос.

Многие предлагают разбивать большие функции на одну или несколько функций, чтобы сложность не превышала 15. Это увеличит число функций, вызываемых данной функцией, и, следовательно, увеличится среднее значение разветвления.

Должны ли мы принять решение об уменьшении расхода или уменьшении цикломатической сложности? Уменьшение сложности Cyclomatic увеличило бы удобство обслуживания, но разделение функций на 2 или более функций увеличило бы количество вызовов функций, что стоило бы большей части памяти.

Итак, какую из этих двух метрик более важно улучшить?

Ответы [ 2 ]

0 голосов
/ 25 мая 2019

Все показатели качества программного обеспечения (включая цикломатическую сложность и разветвленность) в лучшем случае являются ненадежными показателями качества. Я настоятельно рекомендую не пытаться улучшить какую-либо метрику только ради нее.

Тем не менее,

Метрики могут быть надежно использованы для привлечения вашего внимания к коду, который может требовать внимания. Если класс или метод имеют плохие оценки по какой-либо метрике, стоит взглянуть на них и решить, действительно ли существует проблема, которую следует исправить, но это решение разработчика, которое должно сделать окончательный запрос о том, какое действие следует предпринять.

0 голосов
/ 24 января 2019

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

...