使用NDepend衡量.Net代码的质量

评估应用程序代码的质量通常是一个主观过程。 这就是为什么我们转向代码指标—定量测量为我们的应用程序代码提供有价值的见解的原因。 开发人员可以利用代码指标来了解代码的质量,了解潜在的问题,并确定需要重构哪些类型和方法以提高质量。

静态代码分析工具用于测量应用程序中的代码质量,而无需执行应用程序。 .Net有许多静态代码分析工具。 其中包括FxCop,StyleCop,ReSharper,CodeIt.Right,NDepend等。本文讨论了如何使用NDepend可视化代码质量并采取措施改善代码质量。

[那么, 到底GitHub是什么? •GitHub教程: GitHub入门 Git和GitHub的20个基本指针 GitHub的Atom文本编辑器中的新增功能 | 通过InfoWorld的App Dev Report新闻通讯了解编程方面的热门话题。 ]

什么是NDepend,为什么要使用它?

NDepend是一个静态代码分析器,可与Visual Studio很好地集成在一起,并为确定代码质量提供了宝贵的指标。 NDepend以列表,矩阵,图形,树形图和图表的形式显示这些指标。 连同这些指标,NDepend可以分析您的代码并针对大型规则数据库报告违规情况。

NDepend保存每个分析的结果,因此您可以在改善代码覆盖率或代码质量之后比较结果。 它既可以作为独立应用程序运行,也可以作为Visual Studio中的扩展运行。 而且,您可以利用NDepend Azure DevOps扩展功能将NDepend与Azure中的项目集成。

以下是NDepend的一些引人注目的功能:

  • 大量的代码规则以检查是否合规
  • 许多用于查看代码指标的图表
  • 与Visual Studio 2010、2012、2013、2015和2017完美集成
  • 使您能够探索模块之间的依赖关系
  • 提供CQLinq(通过LINQ进行代码查询)以自定义分析
  • 测量代码覆盖率
  • 识别难以维护的代码并估算技术债务
  • 创建趋势图

NDepend入门

要开始使用NDepend,您需要下载并安装它的副本。 您可以从此处下载NDepend的试用版 。 它将打包为.zip文件。

解压缩NDepend安装程序.zip文件后,您将在其中找到以下文件:

  1. NDepend.Console-用于与构建过程集成
  2. NDepend.PowerTools —开源静态分析器的集合
  3. NDepend.VisualStudioExtension.Installer —为NDepend安装Visual Studio扩展
  4. VisualNDepend — NDepend的GUI客户端

您可以通过以下两种方式之一安装NDepend的Visual Studio扩展:

  1. 运行NDepend.VisualStudioExtension.Installer
  2. 运行VisualNDepend,然后选择“安装Visual Studio Extension”

一旦安装了Visual Studio Extension for NDepend,就可以在Visual Studio IDE中利用指标,规则,报告,图形,分析器结果和工具。 您还可以利用Visual NDepend来分析解决方案和项目,而不必启动Visual Studio。

NDepend的Visual Studio扩展可通过Visual Studio 2017用于Visual Studio2010。请注意,我将其与Visual Studio 2017一起使用。

使用NDepend分析源代码

要开始分析源代码,可以单击“分析VS解决方案和VS项目”。 可用的其他选项是“分析文件夹中的.Net程序集”,“分析一组.Net程序集”和“比较2个版本的代码库”。 最后一个选项可让您比较两个版本-一个不错的功能!

为了简单起见,我将在这里使用我最近一篇文章中的源代码(“ 如何在ASP.Net Core中使用Lamar ”)。 单击“分析VS解决方案和VS项目”后,将显示一个新窗口,如下图1所示。

ndepend图1 IDG

图1:选择一个或多个要分析的Visual Studio解决方案或项目。

现在,您可以单击“浏览”并指定您要NDepend分析的项目的解决方案文件。

独立图2 IDG

图2:选择要分析的VS解决方案。

最后,单击“分析单个.Net程序集”以开始分析,如下图3所示。

独立图3 IDG

图3:分析.Net程序集。

这将对所选项目运行代码分析。 分析完成后,NDepend将显示一个带有以下选项的窗口:

  • 查看NDepend仪表板
  • 显示NDepend交互式图
  • 浏览器NDepend代码规则
  • 关闭对话框

让我们选择查看NDepend仪表板。 输出如下所示:

独立图4 IDG

图4:NDepend仪表板。

NDepend向您显示代码行,有关类型,债务的信息,源代码中的注释,覆盖范围信息,方法复杂性,质量门以及已违反的规则以及其他问题。

NDepend功能

依赖图和依赖矩阵

NDepend还向您显示了代码的依赖图和依赖矩阵。 前者提供了项目中依赖关系的图形视图,而后者则提供了对名称空间和类型的依赖关系组织的代码的表格视图。

趋势图

趋势图在仪表板中可用。 这些图表提供了有关项目源代码质量如何随时间变化的预览。 您还可以创建自己的自定义趋势图。

独立图5 IDG

图5:NDepend中的趋势图。

圈复杂度

循环复杂度是对源代码中线性独立路径的定量度量,可以帮助您了解程序的复杂度并提高代码覆盖率。 您可以利用NDepend分析应用程序代码中的圈复杂度。 您可以在本文中了解有关圈复杂度的更多信息

独立图6 IDG

图6:在NDepend中测量圈复杂度。

使用CQLinq查询

CQLinq是NDepend最引人注目的功能之一。 CQLinq使您可以使用LINQ查询.Net代码。 您可以利用CQLinq查询代码债务,问题,规则和质量门。

独立图7 IDG

图7:运行中的NDepend的CQLinq!

让我们看一个例子。 以下CQLinq查询显示循环复杂度大于20的非抽象方法的方法名称和循环复杂度,按循环复杂度值的降序排列。

from m in Application.Methods
where m.CyclomaticComplexity >= 20 && !m.IsAbstract
orderby m.CyclomaticComplexity descending
select new { m, m.CyclomaticComplexity }

这是CQLinq查询的另一个示例。 该代码在执行时将显示具有100多行代码的方法的名称。

from m in Methods where m.NbLinesOfCode > 100 select m

要了解有关CQLinq的更多信息,可以在此处参考NDepend文档

NDepend是一个静态代码分析工具,可以为您提供有关应用程序代码的宝贵见解。 您可以将NDepend作为独立应用程序运行,也可以集成在Visual Studio中。 尽管NDepend不是免费的,但考虑到其强大的功能,其价格合理,并且可用于所有最新版本的Visual Studio。

如果您想要学习NDepend的大量资源,我强烈推荐Eric Dietrich编写的Pluralsight课程“ 实用NDepend ”。

From: https://www.infoworld.com/article/3373847/measure-the-quality-of-your-net-code-with-ndepend.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值