通过 Visual Studio 的“代码度量值”来改进代码质量
1 軟件度量值指標(biāo)
1.1 可維護(hù)性指數(shù)
表示源代碼的可維護(hù)性,數(shù)值越高可維護(hù)性越好。該值介于0到100之間。綠色評(píng)級(jí)在20到100之間,表明該代碼具有高度的可維護(hù)性;黃色評(píng)級(jí)在10到19之間,表示該代碼適度可維護(hù);紅色評(píng)級(jí)在0至9之間,表示低可維護(hù)性。
1.2 圈復(fù)雜度
? 它是通過計(jì)算程序流中不同代碼路徑的數(shù)量來創(chuàng)建的,用來表示一個(gè)程序的復(fù)雜性。具有復(fù)雜控制流的程序需要更多的測(cè)試才能獲得良好的代碼覆蓋率,并且不易維護(hù)。
以下兩種情況會(huì)在計(jì)算圈復(fù)雜度時(shí)加1:
-
分支(if、while、do)
-
switch中的case語句
例如:
//圈復(fù)雜度1
? ? public void Method()
? ? {
? ? ? ? Console.WriteLine("Hello World!");
? ? }
? ? //圈復(fù)雜度3
? ? public void Method(bool condition1, bool condition2)
? ? {
? ? ? ? if (condition1 || condition2)
? ? ? ? {
? ? ? ? ? ? Console.WriteLine("Hello World!");
? ? ? ? }
? ? }
? ? //圈復(fù)雜度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 繼承深度
計(jì)算在繼承層次結(jié)構(gòu)中的繼承深度,繼承樹中層次結(jié)構(gòu)越深,類的開發(fā)、測(cè)試和維護(hù)就越復(fù)雜,因?yàn)閷哟谓Y(jié)構(gòu)越深,理解特定方法和字段的定義和(或)重新定義的難度也就越大。
1.4 類耦合度
類耦合是一個(gè)類是如何與另一個(gè)類連接或依賴的度量。好的做法是總是實(shí)現(xiàn)較少的依賴類或低級(jí)耦合。
1.5 代碼行數(shù)
表示代碼行數(shù),計(jì)數(shù)基于IL代碼,因此不是源代碼文件中的確切行數(shù)。一個(gè)非常高的計(jì)數(shù)可能表明一種類型或方法試圖做太多的工作,應(yīng)該分開。它還可能表明類型或方法可能難以維護(hù)。
2 計(jì)算代碼度量值
?Step 01 運(yùn)行“計(jì)算代碼度量值”
Step 02 查看“代碼度量值結(jié)果”
Step 03 使用“代碼度量值結(jié)果”
篩選:
導(dǎo)出:
?
列管理:
? 計(jì)算代碼度量值:
?
參考文檔:https://www.codeguru.com/csharp/csharp/cs_network/improving-code-quality-with-visual-studio-code-metrics.html
原文:http://www.cnblogs.com/MeteorSeed/p/7865426.html
.NET社區(qū)新聞,深度好文,歡迎訪問公眾號(hào)文章匯總 http://www.csharpkit.com
總結(jié)
以上是生活随笔為你收集整理的通过 Visual Studio 的“代码度量值”来改进代码质量的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用AspectCore动态代理
- 下一篇: ASP.NET Core 认证与授权[5