目錄
1 代碼質量衡量指標
SQALE(Software Quality Assessment based on Lifecycle Expectations)方法整合了ISO-25010標准與代碼規范,其目標是:以客觀、准確、可復制和自動化的方式為評估軟件應用程序的源代碼提供支持;為管理技術債務提供一種有效的方法。SQALE是目前眾多主流代碼分析工具的參照標准,包括我們熟知的SonarQube,和CoderGears, SQUORE等商用代碼掃描分析工具。
-
編碼規范:是否遵守了編碼規范,遵循了最佳實踐。
[強制]等級規約必須遵守 -
潛在問題:可能在最壞情況下出現問題的代碼,以及存在安全漏洞的代碼。
數量小於10,安全風險類潛在Bug必須修復 -
文檔和注釋:過少(缺少必要信息)、過多(沒有信息量)、過時的文檔或注釋。
-
重復代碼:違反了Don’t Repeat Yourself原則.
重復代碼不超過20% -
復雜度:代碼結構太復雜(如圈復雜度高),難以理解、測試和維護.
圈復雜度超過20的代碼必須重構
圈復雜度 | 代碼狀況 | 可測性 | 維護成本 |
---|---|---|---|
1-10 | 清晰、結構化 | 高 | 低 |
10-20 | 復雜 | 中 | 中 |
20-30 | 非常復雜 | 低 | 高 |
>30 | 不可讀 | 不可測 | 非常高 |
-
單元測試覆蓋率:編寫單元測試,特別是針對復雜代碼的測試覆蓋是否足夠。
達到70% -
技術債:償還債務所需耗費的資源/重寫所有代碼預估耗費的資源
SonarQube中- [0, 5%] -> A , 默認需要達到的等級
- (5%, 10%] -> B
- (10%,20%] -> C
- (20%, 50%] -> D
- 高於50% -> E
達到100%時,即債務開始超過資產,資不抵債,這時就稱這種情況為“技術破產”。
負債等級達到B或負債比率小於等於10%