【问题标题】:Seeing Trends in Code Metrics with NDepend使用 NDepend 查看代码指标的趋势
【发布时间】:2012-03-03 03:11:18
【问题描述】:

我有一个用于构建服务器的 NDepend 版本,并自动生成了 NDepend 报告。因此,每天晚上构建都会完成它的工作并生成 NDepend 报告/XML。我现在想做的是跟踪一些随时间变化的指标。

因此,例如,在 y 轴上绘制一个特定类型或命名空间的图(例如传入耦合),在 x 轴上绘制时间图可能会很好。我知道我可以比较两个 NDepend 构建并且有代码和指标差异,但我想做的是比较相同的单个指标或 N 个构建的指标以查看持续趋势。

我有点假设目前没有一种工具可以做到这一点,我必须自己推出一个工具,但如果有一个工具,我肯定很想在投资之前听到它时间。那么,NDepend 本身是否支持这样的东西,或者是否有某种我可以使用的已经存在的实用程序?

除了 NDepend 之外,我也愿意接受其他可以实现这一目标的技术的建议,尽管我对 NDepend 有强烈的偏好,因为我已经对它进行了投资并熟悉它的工作原理。

提前致谢。

【问题讨论】:

    标签: c# visual-studio-2010 static-analysis ndepend cqlinq


    【解决方案1】:

    使用NDepend,您可以编写Code Query over LINQ (CQLinq) 以通过任何代码指标匹配进化。例如,您可以从查询开始:

    from t in JustMyCode.Types
    where t.IsPresentInBothBuilds() &&
          t.CodeWasChanged()
    let tOld = t.OlderVersion()
    
    let newLoC = t.NbLinesOfCode  
    let oldLoC = tOld.NbLinesOfCode
    let newCC = t.CyclomaticComplexity
    let oldCC = tOld.CyclomaticComplexity
    let newCov = t.PercentageCoverage
    let oldCov = tOld.PercentageCoverage
    where newLoC > oldLoC || newCC > oldCC || newCov < oldCov
    select new { t, newLoC, oldLoC, newCC, oldCC, newCov, oldCov }
    

    ...并在 Visual Studio 中获得即时结果。这样的规则可以集成到您的CI TFS build process 中,也可以显示在HTML+javascript report 中。

    提供了几个默认代码规则来限制代码指标趋势:

    【讨论】:

    • 感谢您的反馈。我可能会编写自己的解析器并显示为单独的程序集,这样我就可以在使用 API 的东西出来时换掉它。
    猜你喜欢
    • 2016-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多