使用 Visual Studio 的“代码度量值”来改进代码质量
 更新时间:2017年11月20日 16:26:41   作者:MeteorSeed  

代码度量是一组软件度量值,使开发人员可以更好地了解他们正在开发的代码.这篇文章主要介绍了通过 Visual Studio 的“代码度量值”来改进代码质量,需要的朋友可以参考下

代码度量是一组软件度量值,使开发人员可以更好地了解他们正在开发的代码。 利用代码度量,开发人员可以了解哪些类型和/或方法应该返工或进行更彻底的测试。 开发团队可以识别潜在的风险、了解项目的当前状态,并跟踪软件开发的进度。
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 的“代码度量值”来改进代码质量,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对华域联盟网站的支持!

您可能感兴趣的文章:C++运算符重载实例代码详解(调试环境 Visual Studio 2019)代码从windows下visual studio到andriod平台迁移实现步骤.NET Visual Studio 代码性能分析工具配置Visual Studio 以调试.net framework源代码Visual Studio 中自定义代码片段的方法

vs
代码度量

相关文章
浅谈.net平台下深拷贝和浅拷贝在.net类库中,对象克隆广泛存在于各种类型的实现中,凡是实现了ICloneable接口的类型都具备克隆其对象实例的能力。所以本文讲述的深拷贝和浅拷贝也是在实现ICloneable接口的基础上进行的 2013-12-12
asp.net GridView中超链接的使用(带参数)在GridView中,点击链接列跳转到指定页面的实现代码,需要的朋友可以参考下。 2010-03-03
asp.net获取select值的方法今天有个朋友问我如何使用asp.net获取select值,以为很简单的问题,结果发现自己也不知道于是搜索中发现了下面的这个不错的例子,在此与大家分享 2013-09-09
.NET图像界面按钮的clicked事件浅谈 在.NET图像界面开发中最常见的一个事件大概就是按钮的clicked事件了,当点击图形界面的按钮时,就会调用一个与这个事件相关的方法对这个事件进行响应,做一些相关操作。 2013-04-04
基于.net4.0实现IdentityServer4客户端JWT解密这篇文章主要为大家详细介绍了基于.net4.0实现IdentityServer4客户端JWT解密,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 2018-09-09
.net 获取浏览器Cookie(包括HttpOnly)实例分享这篇文章介绍了.net 获取浏览器Cookie(包括HttpOnly)实例,有需要的朋友可以参考一下 2013-10-10
一步步打造简单的MVC电商网站BooksStore(3)这篇文章主要和大家一起一步步打造一个简单的MVC电商网站,MVC电商网站BooksStore第三篇,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 2017-04-04
实现onmouseover和onmouseout应用于RadioButtonList或CheckBoxLi一直想实现onmouseover和onmouseout应用于RadioButtonList或CheckBoxList控件上。此功能就是当鼠标经过时RadioButtonList或CheckBoxList每一个Item时,让Item有特效显示,离开时,恢复原样有演示动画,感兴趣的朋友可以了解下啊 2013-01-01
Repeater里switch的使用方法 在Repeater里,有多个判断的情况下,如果使用switch呢?直接看下面的例子: 2013-04-04
asp.net COOKIES需要注意的一点COOKIES是很方便使用,也是很广泛使用的状态存储体 2008-11-11

最新评论

声明:本站(华域联盟www.cnhackhy.com)所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。