Cyclomatic Сложность: Решарпер против CodeMaid
Я уже некоторое время использую и CodeMaid, и Resharper, и заметил, что они оба рассчитывают цикломатическую сложность. Хотя их вычисления всегда различаются, поэтому я думаю, что их расчетная логика тоже имеет значение. Но, по вашему опыту, какой из них является более точным? Кажется, что Resharper обычно выше, но CodeMaid легче обнаружить.
Возможно, один из них считает это неправильно? Или просто по другому, но приемлемо?
Заранее спасибо!
1 ответ
Я не могу говорить с реализацией CodeMaid, но ReSharper основан на синтаксическом анализе исходного кода в абстрактном синтаксическом дереве и на самом деле построении графа потока управления на основе этой информации (этот граф потока управления также используется для анализа нулевого значения, отслеживания при вещи являются нулевыми, не нулевыми или неизвестными, что позволяет проводить проверки, такие как "возможное исключение NullReferenceException"). Я ожидаю, что ReSharper будет точным расчетом, но не знаю точно.
Тем не менее, если разница между значениями достаточно непротиворечива, то не имеет значения, каково точное значение - только если вы знаете, какое пороговое значение означает, что ваш код слишком сложен.