經過 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

相關文章
相關標籤/搜索