2014-12-02 59 views
0

我用C#開發了一個.NET應用程序。'267'的環複雜性是否更好?

使用「計算代碼度量」選項,我的「267」的圈複雜度得分與2348家系的遺傳= 7的碼和深度,類耦合= 150和可維護性指數= 80。

我知道圈複雜度越低,越好。雖然我不知道其餘的參數,但我想知道267的圈複雜度是否更好?

+1

比什麼更好?如果沒有什麼可以比較的話,你不能說更好或更糟的東西。 – Rik 2014-12-02 09:02:11

+0

我*認爲*在上述所有方面都變得更好。確保你關注[SOLID](http://en.wikipedia.org/wiki/SOLID_%28object-oriented_design%29)。 – 2014-12-02 09:02:25

+0

對於可維護性指數,越高越好 - 「0到100之間的索引值表示維護代碼的相對容易度,高值意味着更好的可維護性。可以使用顏色編碼評分快速識別代碼中的故障點。綠色等級介於20和100之間,表示代碼具有良好的可維護性,黃色等級介於10和19之間,表示代碼維護性適中,紅色等級介於0和9之間,表示可維護性較低。 ref:http://msdn.microsoft.com/en-us/library/bb385914.aspx – DavidWhitney 2014-12-02 09:49:48

回答

4

循環複雜度通常是指通過您的代碼的獨立路徑的數量。這是通過在Visual Studio中下面的公式測量:

Complexity = Edges - Nodes + 1 

對於任何給定方法中,25被認爲是危險的高,並導致Visual Studio中引發錯誤。理想情況下,您希望保持圈複雜度儘可能低。嘗試瞄準3-4,最大值在10左右。

對於整個項目來說,這個數字可能不足以在單獨的項目之間進行比較。如果您重構代碼,則可以將其用作度量標準,以幫助確定是否對降低總體複雜性產生影響。

但是,請謹慎使用這些類型的指標作爲項目健康狀況的唯一指標。如果沒有明確的問題或目標,他們會誤導你,浪費時間或更糟。在嘗試降低圈複雜度之前,您最好專注於代碼覆蓋率等其他度量。

你可以閱讀更多關於圈複雜度的位置:
http://msdn.microsoft.com/en-us/library/ms182212.aspx
https://en.wikipedia.org/wiki/Cyclomatic_complexity

+1

你是數字適用於單一方法的圈複雜性,而我猜(希望)OP是在談論(至少)一個項目的圈複雜性。 – Rik 2014-12-02 09:19:47

+0

好點,我會修改我的提交以反映這一點。 – 2014-12-02 09:25:18