博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用NDepend与LINQ检查代码
阅读量:7027 次
发布时间:2019-06-28

本文共 1078 字,大约阅读时间需要 3 分钟。

NDepend发布了他们旗舰静态代码分析产品的新版本。NDepend 4推出了代码查询LINQ、NDepend API、并增加了对VS 2012的支持。代码查询LINQ,顾名思义,是一项针对代码编写查询的LINQ provider。以下是来自中给出的快速示例:

 

// Base class should not use derivatives

warnif count > 0
from baseClass in JustMyCode.Types
where baseClass.IsClass && baseClass.NbChildren > 0 // <-- for optimization!
let derivedClassesUsed = baseClass.DerivedTypes.UsedBy(baseClass)
where derivedClassesUsed.Count() > 0
select new { baseClass, derivedClassesUsed }

源程序中的JustMyCode用作区分用户生成类型和代码生成类型。接下去是一个查询,通过名称检查是否存在某些类引用自己的子类。

NDepend能够检查多个方面。在一个例子中,Patrick演示了通过将代码覆盖率与圈复杂度(cyclomatic complexity)进行比较来确定高风险代码。该方法基于Alberto Savoia的“”研究项目。

你可能注意到上述例子中的warnif前缀,它是NDepend创建用于自身标准工具的静态分析规则。如果你想要构建自己的静态分析工具,那么你可以利用新发布的。其特性列表包括能够:

  • 分析一个或多个.NET程序集,并创建NDepend报告(只有具有构建机器许可方能使用该功能);
  • 探测程序集命名空间、类型、方法与字段之间的依赖性;
  • 对代码元素使用NDpend以计算收集常规代码度量(code metrics),并创建自己的代码度量;
  • 探测同一份.NET代码基础的两个版本之间的不同之处,甚至跨越多个版本给出接下去的演变;
  • 打开代码元素的源文件声明;
  • 即时生成与执行CQLinq规则或查询;

Patrick在题为《》一文中展示了NDepend.API的使用。

虽然是一款商业产品,但是它确实为开发社区提供了一些支持。Patrick写到,

无论如何,我们致力于发展与社区持久的双赢关系都没有改变。我们很高兴为所有的学生/教师/OSS 开发人员/博客写手/MVP等等提供了免费的专业版许可,也希望他们能够帮助传播我们的口碑。

转载地址:http://dklxl.baihongyu.com/

你可能感兴趣的文章
解决1px的border在移动端变粗的问题
查看>>
InterviewMap —— Javascript (二)
查看>>
js数组操作
查看>>
比特币重回4000美元的关口
查看>>
传统短视频直播平台和新兴一对一交友源码力与美的结合
查看>>
撩课大前端-面试宝典-第七篇
查看>>
开源大数据周刊-第3期
查看>>
java版 b2b2c o2o电子商务云商平台spring cloud+springmvc+mybatis
查看>>
区块链100讲:Hyperledger Fabric 区块链多机部署
查看>>
重学前端学习笔记(十九)--JavaScript中的函数
查看>>
SpringBoot2.1版本的个人应用开发框架 - 整合vue实现前后端分离
查看>>
Rxjava2源码分析之线程切换(subscribeOn、observeOn)
查看>>
SpringBoot整合Mybatis
查看>>
KNN分类器-Java实现
查看>>
从事iOS研发6年的面经——希望对你们有帮助,程序员必看!
查看>>
uni-app 打开第三方程序
查看>>
fastlane 的集成与使用
查看>>
Android学习之JSON解析(二)使用GSON技术解析JSON
查看>>
JavaScript中的原型链和继承
查看>>
Java集合类的使用
查看>>