将代码视为数据:NDepend





0/5 (0投票)
将代码视为数据:NDepend。
引言
几周前,我的一个朋友推荐了一个工具,他这样描述它。
将代码视为数据,您可以查询有关代码的信息并跟踪更改。
他所说的还不够充分。 我试用了这个工具,发现它对于长期项目和管理团队开发非常有价值。 所以我很乐意看看并谈谈 NDepend, 以及我使用它的经验。
浏览文档时,我不会在这里复述,因为它写得很好,但我将描述到目前为止我发现有用的功能。
CQLinq,查询代码
NDepend 背后的主要机制是 CQLinq 语言,您可以在其中编写 C# Linq 查询,这些查询会运行您的代码以查询行数、复杂性、参数数量、方法数量以及您可以提取的更多指标。
因此,如果您知道如何编写 Linq 查询,那么采用此功能非常容易,除了该工具中仅存在的一些特定关键字,例如 warnif
、failif
以及文档中介绍的其他关键字。 但这还不是全部,考虑到该工具有 300 多个此类查询,您有相当多的示例可以使用,此外预先打包的查询也可以修改以最适合您的需求。
我之所以称其为主要机制,是因为您不仅可以查询问题、类型、方法、类,还可以将这些查询聚合到网关中,以便您可以在将代码推送到生产分支之前检查代码,还可以创建趋势,以便您可以跟踪应用程序在其生命周期内的变化。
技术债务
嵌入到那些预先打包的查询或“规则”中,是一些技术债务的计算,可以通过 NDepend 项目属性进行配置。
这使您可以根据开发过程中违反了哪些规则以及如果不解决这些问题,技术债务估计有多少(包括利息)来查看项目的当前状态。
这对于任何想要关注项目整体健康状况的团队负责人或项目架构师来说非常方便,对于项目经理来说,它还可以显示债务将产生的估计货币成本(特别是如果它持续增长)。
到目前为止,最好的功能是…
基线比较
因此,您不仅可以从您的项目中提取所有这些信息,从结构到货币支出,还可以沿途创建检查点。
通过构建分析并将该分析用作基线,您可以按如下方式跟踪应用程序的进度
- 在主分支或生产分支的当前状态下创建基线
- 开始在该分支上进行开发
- 创建该分支的新分析,并将其与主/生产分支的分析进行比较作为基线
有了这个,您可以查看新代码中引入了多少新问题,它是否被单元测试正确覆盖,新分支中是否引入了任何债务,以及如果允许它通过,修复它需要多少费用。
结论
我知道这篇帖子很短,但这是一个很大的工具,随着我不断了解它,将会有新的帖子。 还有更多我甚至还没有接触的功能,例如集成到构建管道中进行持续集成、依赖关系图和矩阵、趋势和报告。
当涉及到“为工作使用正确的工具”时,如果您在一个团队中工作或运行该项目,这肯定是一个您不想缺少的工具。
感谢您,希望您能在这个工具中找到与我一样多的价值。