没有 get 和 set 的 NDepend 平均圈复杂度
NDepend Average Cyclomatic Complexity without get and set
我们正在使用 NDepend 5,我确实对我们的平均圈复杂度有些怀疑。
在检查这个查询是如何进行时,我发现它包括我们属性的 getters 和 setters。它似乎还包括自动属性方法。这些方法通常相当于 1 的 CC。我不喜欢这样,因为它降低了我们的平均 CC,并且向我们展示的不是我们编码的方法的真实平均值。
有没有办法从此计算中删除属性?
您可以使用 code query 定义自定义复杂度指标,如果需要可以将其转换为规则(使用前缀 warnif count > 0
和阈值条件):
from t in JustMyCode.Types
let complexity = t.Methods.Where(m => !(m.IsPropertyGetter || m.IsPropertySetter))
.Sum(m => m.CyclomaticComplexity)
orderby complexity descending
select new { t, complexity, t.CyclomaticComplexity }
下面的截图比较了得到的值。
我们正在使用 NDepend 5,我确实对我们的平均圈复杂度有些怀疑。
在检查这个查询是如何进行时,我发现它包括我们属性的 getters 和 setters。它似乎还包括自动属性方法。这些方法通常相当于 1 的 CC。我不喜欢这样,因为它降低了我们的平均 CC,并且向我们展示的不是我们编码的方法的真实平均值。
有没有办法从此计算中删除属性?
您可以使用 code query 定义自定义复杂度指标,如果需要可以将其转换为规则(使用前缀 warnif count > 0
和阈值条件):
from t in JustMyCode.Types
let complexity = t.Methods.Where(m => !(m.IsPropertyGetter || m.IsPropertySetter))
.Sum(m => m.CyclomaticComplexity)
orderby complexity descending
select new { t, complexity, t.CyclomaticComplexity }
下面的截图比较了得到的值。