在5.5之前的Sonarqube版本中,有可能改變計算技術債務的方式以考慮複雜性,但5.5之後我看不到改變它。你刪除了這個配置嗎?技術債務公式沒有考慮到複雜性
恕我直言,在一個複雜的代碼中修復的成本比在一個簡單的代碼中要困難得多。這裏是一個post,你可以在這裏看到並比較兩個類似的項目,這些項目的規模基於相似的技術債務,但基於複雜性的技術債務卻截然不同。此外,覆蓋範圍正在影響這一措施;我認爲當你有足夠的測試和覆蓋範圍來確保你不會破壞任何東西時,修改代碼會更容易。
在sonarqube文檔,也就是用於計算技術債務比的公式爲:
Remediation cost/(Cost to develop 1 line of code * Number of lines of code)
但補救費用是每個規則配置的固定時間量,是不是?所以它獨立於代碼中可以找到的複雜性。
這裏是一個圖片,你可以看到這是如何在5.1.2版本來完成: Technical debt with complexity
有什麼辦法來配置,在LTS或6.x版本,在技術債務,以使像以前的版本一樣考慮到複雜性?
如果不是,那是在你的路線圖嗎?你有沒有提到複雜性或覆蓋範圍不會影響補救成本?
在此先感謝。
注:認知複雜性的新概念似乎非常有趣,我們再次談論複雜性,這將是一個很好的候選人。但是我還沒有看到在Sonarqube 6.3.1中看到它,有可能嗎?
工作感謝您的回答, –
感謝您的回答,這意味着爲複雜性創建單獨的質量大門將是強制性的。你說技術債務/不再包含時間,但它隨着時間的推移而出現,並在「修復成本」和「開發1行代碼的成本」公式中以時間表示。那我們怎麼解釋呢? –
技術債務仍然是一個時間衡量標準,但它不再反映項目中的問題 –