gpt4 book ai didi

c# - 如何测量 NDepend 中的 RFT 指标?

转载 作者:太空宇宙 更新时间:2023-11-03 15:57:59 25 4
gpt4 key购买 nike

是否NDepend有直接测量的方法RFC (RFT) CQL ?或者我们是否必须编写一个 CQL 查询来递归计数在我们自己使用的类(类型)中调用的方法?如果是这样,它看起来如何?类似于 this

最佳答案

这确实是可能的,多亏了魔法 FillIterative()方法。唯一的问题是此代码查询可能需要几秒钟才能运行,您可能需要调整查询超时(默认设置为 2 秒)。请注意,此性能成本是由 RFT 定义引起的,而不是来自所用算法的问题。

代码如下:

// <Name>RFT</Name>
from t in Application.Types
where !t.IsInterface && !t.IsEnumeration
let methodsUsedDirectly =
t.TypesUsed
.Where(tUsed => !tUsed.IsThirdParty)
.ChildMethods()
.Where(m => m.IsUsedBy(t))

let methodsUsedIndirectly = methodsUsedDirectly
.FillIterative(
methods => methods.SelectMany(
m => m.MethodsCalled
.Where(mCalled => !mCalled.IsThirdParty))
)
.DefinitionDomain.ToArray()

let rftLoC = methodsUsedIndirectly.Sum(m=>m.NbLinesOfCode)

select new { t,
methodsUsedDirectly,
methodsUsedIndirectly,
rft = methodsUsedIndirectly.Length,
rftLoC }

通过运行此查询,您不仅可以获得每种类型的 RFT 度量,还可以获得代码行方面的 RFT(即响应中方法的 LoC 总和)您还可以为每种类型列出响应中的所有方法。

NDepend Code Query RFT Response for Type

关于c# - 如何测量 NDepend 中的 RFT 指标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22623479/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com