代码之家  ›  专栏  ›  技术社区  ›  Maslow

不依赖计数、平均值等。报告……汇总。可能吗?清洁工作区?

  •  3
  • Maslow  · 技术社区  · 14 年前

    我们有一个庞大的代码库,其中只包含太多局部变量的方法返回226个方法。我不希望将这个巨大的表转储到XML输出中使其变得杂乱无章,如果可能的话,我希望排在前10位,但我真正想要的是计数,这样我们就可以进行趋势分析和执行摘要。有没有一种干净/高效/可扩展的非黑客方法来做到这一点?

    我想我可以使用一个可执行的任务,而不是一个未挂起的任务(这样合并就不是自动的了),混乱不会被合并。然后手动操作这些文件以获取摘要,但我想知道是否有较短的路径?

    1 回复  |  直到 13 年前
        1
  •  1
  •   Patrick from NDepend team    13 年前

    怎么样 defining a base line to only take account of new flaws ?

    我真正想要的是计数,这样我们就可以进行趋势分析和执行摘要

    使用代码查询和LINQ(CQLINQ)上的规则可以很容易地实现趋势分析,例如: Avoid making complex methods even more complex (Source CC)

    // <Name>Avoid making complex methods even more complex (Source CC)</Name>
    // To visualize changes in code, right-click a matched method and select:
    //  - Compare older and newer versions of source file
    //  - Compare older and newer versions disassembled with Reflector
    
    warnif count > 0 
    from m in JustMyCode.Methods where
     !m.IsAbstract &&
      m.IsPresentInBothBuilds() &&
      m.CodeWasChanged()
    
    let oldCC = m.OlderVersion().CyclomaticComplexity
    where oldCC > 6 && m.CyclomaticComplexity > oldCC 
    
    select new { m,
        oldCC ,
        newCC = m.CyclomaticComplexity ,
        oldLoc = m.OlderVersion().NbLinesOfCode,
        newLoc = m.NbLinesOfCode,
    }
    

    Avoid transforming an immutable type into a mutable one

    推荐文章