经过 Visual Studio 的“代码度量值”来改进代码质量

1 软件度量值指标

1.1 可维护性指数

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

1.2 圈复杂度

   它是经过计算程序流中不一样代码路径的数量来建立的,用来表示一个程序的复杂性。具备复杂控制流的程序须要更多的测试才能得到良好的代码覆盖率,而且不易维护。visual-studio-code

  如下两种状况会在计算圈复杂度时加1:visual-studio

  •   分支(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 继承深度

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

1.4 类耦合度

  类耦合是一个类是如何与另外一个类链接或依赖的度量。好的作法是老是实现较少的依赖类或低级耦合。code

1.5 代码行数

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

2 计算代码度量值

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

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

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

  筛选:blog

  导出:继承

 

  列管理:开发

   计算代码度量值:

 

参考文档:https://www.codeguru.com/csharp/csharp/cs_network/improving-code-quality-with-visual-studio-code-metrics.html

相关文章
相关标签/搜索