我想找到一個更好的替代默認java質量配置文件「與Findbugs聲納方式」。聲納:更好的規則爲java項目
在配置文件的516條規則中,其中一些規則實際上沒有正確設置(優先級或激活)。
例如:
- 是「死存儲到本地變量」真正的關鍵問題?
- 「添加空字符串」被禁用,但值得啓用。
- 「使用等於比較字符串」已禁用...
,因爲我無法找到任何準備使用的一套規則,而不是默認的一個更好的,我想獲得有關這個主題的反饋來自有經驗的Sonar用戶。
我想找到一個更好的替代默認java質量配置文件「與Findbugs聲納方式」。聲納:更好的規則爲java項目
在配置文件的516條規則中,其中一些規則實際上沒有正確設置(優先級或激活)。
例如:
,因爲我無法找到任何準備使用的一套規則,而不是默認的一個更好的,我想獲得有關這個主題的反饋來自有經驗的Sonar用戶。
「死亡存儲到本地變量」真的是一個關鍵問題?
這可能是一個嚴重的問題,因爲它不僅僅表明在某些情況下浪費了內存。通常,這個問題是由於缺少或錯誤的變量訪問引起的。考慮下面這個例子中,m_valueY
將被標記爲死存儲:
public class ResultData {
private int m_valueX;
private int m_valueY;
public int getValueX() {
return m_valueX;
}
public int getValueY() {
//should actually be m_valueY
return m_valueX;
}
public void setValueX(int valueX) {
m_valueX = valueX;
}
public void setValueY(int valueY) {
m_valueY = valueY;
}
}
使用等於比較字符串
也許規則「的對象應該用‘的equals()’相比,」是不是積極和隱含地涵蓋了這一問題所發現的問題。
我的經驗(我使用的是SQ,因爲在3名不同的公司其第一個版本,寫了多年來130+定製檢查)如下:
然後每次「SonarQube Way」發展,您都可以輕鬆更新它,然後將其與P1進行比較。
您可以使用「SonarQube路與FindBugs的」個人資料做同樣的(但我不會這麼做,因爲這使得大量的規則...)
始終牢記,這是最好少你可以解釋規則,所有的開發者都願意申請,而不是有很多難以解釋,沒有人相信和沒人願意申請的檢查,也不會因爲大量的檢查而讀SQ。換句話說,從小開始,並與您的開發人員共同成長。
還記得那些不固定的問題(並且由於他的規則提高了太多的誤報,很難理解等原因,所以沒有人願意解決)是一個難以擺脫的債務。這是一個總會帶來更多債務的泄漏,主要是因爲人們還沒有準備好聽到這些問題。在這樣的情況下,最好停用這些規則,並在人們準備好談論它們並應用它們時再回來。
最後但並非最不重要。同意質量配置文件發佈日期的開發團隊。例如,假設您同意每年會有兩次配置文件更新。在兩個配置文件發佈之間,歡迎大家討論規則,但是直到下一個發佈之前這些規則都不會被修改,如果需要修改(添加/刪除規則),必須討論並找到一致意見。如果項目在兩個版本之間啓動,它將從當前配置文件開始並使用它。在更新配置文件時,您的項目可能有一個版本將其代碼與新規則對齊,或者如果您使用「修復泄漏」方法,則項目同意新代碼以及重構代碼將遵循新配置文件。
請記住,如果你的配置文件的擁有者,你的開發人員應該要添加要求新規則的人(這是由一條好KPI)。
還有很多東西要說這個,但這應該是一個很好的起點,以幫助你。