2017-05-29 65 views
0

我不明白這個指標/規則的原因:HIS公制「呼叫」

的函數不應該從超過5個不同的功能調用。 同一函數內的所有調用均計爲1.規則 僅限於翻譯單元範圍。

在我看來,這是完全直觀的,因爲這與代碼重用以及將代碼拆分爲經常使用的功能而不是重複代碼的方法相矛盾。

有人可以解釋理由嗎?

回答

0

首先要說的是,基於度量的質量方法本質上具有一定的主觀性和近似性。遵循一種度量標準的方法來傳遞高質量的代碼是沒有絕對的。

在軟件複雜性中需要考慮兩個因素。一個是內部複雜性,由每個函數內的決策複雜度(最好以循環複雜度度量爲例)以及容器內的函數(翻譯單元或類)之間的依賴關係複雜度來表示。另一個是接口複雜性,測量協作和分層組件或類之間的依賴關係的級別,包括循環級別。在C/C++世界中,這跨越了多個TU。在Structure101條款中,內部複雜形式稱爲「胖」,外部形式稱爲「糾結」。

回到你的問題,這個Hersteller計劃軟件'CALLING'指標是針對內部複雜性(胖)。他們的觀點似乎是,如果您對單個函數的引用超過5個點,那麼C++類或C實現文件中的實現邏輯可能太多,因此可能有時間分解爲單獨的模塊或組件。這似乎是軟件設計和結構的獨特視角,而例外列表可能與這種判斷可能適用的領域一樣長。