使用 Visual Studio 的“代码度量值”来改进代码质量

所属分类: 网络编程 / ASP.NET 阅读数: 1115
收藏 0 赞 0 分享

代码度量是一组软件度量值,使开发人员可以更好地了解他们正在开发的代码。 利用代码度量,开发人员可以了解哪些类型和/或方法应该返工或进行更彻底的测试。 开发团队可以识别潜在的风险、了解项目的当前状态,并跟踪软件开发的进度。

1 软件度量值指标

1.1 可维护性指数

  表示源代码的可维护性,数值越高可维护性越好。该值介于0到100之间。绿色评级在20到100之间,表明该代码具有高度的可维护性;黄色评级在10到19之间,表示该代码适度可维护;红色评级在0至9之间,表示低可维护性。

1.2 圈复杂度

   它是通过计算程序流中不同代码路径的数量来创建的,用来表示一个程序的复杂性。具有复杂控制流的程序需要更多的测试才能获得良好的代码覆盖率,并且不易维护。

  以下两种情况会在计算圈复杂度时加1:

  分支(if、while、do)

  switch中的case语句  

  例如:   

//圈复杂度1
 public void Method()
 {
 Console.WriteLine("Hello World!");
 }
 //圈复杂度3
 public void Method(bool condition1, bool condition2)
 {
 if (condition1 || condition2)
 {
  Console.WriteLine("Hello World!");
 }
 }
 //圈复杂度8
 public void Method(DayOfWeek day)
 {
 switch (day)
 {
  case DayOfWeek.Monday:
  Console.WriteLine("Today is Monday!");
  break;
  case DayOfWeek.Tuesday:
  Console.WriteLine("Today is Tuesday!");
  break;
  case DayOfWeek.Wednesday:
  Console.WriteLine("Today is Wednesday!");
  break;
  case DayOfWeek.Thursday:
  Console.WriteLine("Today is Thursday!");
  break;
  case DayOfWeek.Friday:
  Console.WriteLine("Today is Friday!");
  break;
  case DayOfWeek.Saturday:
  Console.WriteLine("Today is Saturday!");
  break;
  case DayOfWeek.Sunday:
  Console.WriteLine("Today is Sunday!");
  break;
 }
 }

1.3 继承深度

  计算在继承层次结构中的继承深度,继承树中层次结构越深,类的开发、测试和维护就越复杂,因为层次结构越深,理解特定方法和字段的定义和(或)重新定义的难度也就越大。

1.4 类耦合度

  类耦合是一个类是如何与另一个类连接或依赖的度量。好的做法是总是实现较少的依赖类或低级耦合。

1.5 代码行数

  表示代码行数,计数基于IL代码,因此不是源代码文件中的确切行数。一个非常高的计数可能表明一种类型或方法试图做太多的工作,应该分开。它还可能表明类型或方法可能难以维护。

2 计算代码度量值

 Step 01 运行“计算代码度量值”

Step 02 查看“代码度量值结果”

Step 03 使用“代码度量值结果”

  筛选:

  导出:

  列管理:

   计算代码度量值:

以上所述是小编给大家介绍的通过 Visual Studio 的“代码度量值”来改进代码质量,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

更多精彩内容其他人还在看

.NET Core源码解析配置文件及依赖注入

这篇文章我们设计了一些复杂的概念,因为要对ASP.NET Core的启动及运行原理、配置文件的加载过程进行分析,依赖注入,控制反转等概念的讲解等
收藏 0 赞 0 分享

.NET Corek中Git的常用命令及实战演练

这篇文章将通过故事的形式从Git的历史谈起,并讲述Git的强大之处。然后通过实战演练教你如何在Github以及码云上托管我们的代码并进行代码的版本控制
收藏 0 赞 0 分享

Asp.Net Core WebAPI使用Swagger时API隐藏和分组详解

这篇文章主要给大家介绍了关于Asp.Net Core WebAPI使用Swagger时API隐藏和分组的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Asp.Net Core具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
收藏 0 赞 0 分享

如何利用FluentMigrator实现数据库迁移

这篇文章主要给大家介绍了关于如何利用FluentMigrator实现数据库迁移的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
收藏 0 赞 0 分享

ASP.NET Core利用Jaeger实现分布式追踪详解

这篇文章主要给大家介绍了关于ASP.NET Core利用Jaeger实现分布式追踪的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用ASP.NET Core具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
收藏 0 赞 0 分享

浅谈从ASP.NET Core2.2到3.0你可能会遇到这些问题

这篇文章主要介绍了ASP.NET Core2.2到3.0可能会遇到的问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

详解.net core webapi 前后端开发分离后的配置和部署

这篇文章主要介绍了.net core webapi 前后端开发分离后的配置和部署,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

详解ASP.Net Core 中如何借助CSRedis实现一个安全高效的分布式锁

这篇文章主要介绍了ASP.Net Core 中如何借助CSRedis实现一个安全高效的分布式锁,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

.net 4.5部署到docker容器的完整步骤

这篇文章主要给大家介绍了关于.net 4.5部署到docker容器的完整步骤,文中通过示例代码介绍的非常详细,对大家学习或者使用.net4.5具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
收藏 0 赞 0 分享

.net core并发下线程安全问题详解

这篇文章主要给大家介绍了关于.net core并发下线程安全问题的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用.net core具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
收藏 0 赞 0 分享
查看更多