簡體   English   中英

靜態代碼分析 - 首先打開哪些?

[英]Static Code Analysis - Which ones to turn on first?

我們正在使用帶有內置靜態代碼分析規則集的VS2008。
我們有一個相對較大的C#解決方案(150多個項目),而一些項目(<20)正在虔誠地使用靜態代碼分析,大多數不是。 我們希望開始對所有項目實施靜態代碼分析,但啟用所有規則會對我們當前的項目造成巨大的干擾。 我們應該首先啟用哪些靜態代碼分析規則? 降壓哪個規則最大? 如果你能給我優先考慮的前20名,我會非常感激。
提前致謝,
--Ed.S。

鑒於Studio的規則類似於FxCop的規則,我可以告訴你我最后會打開哪些規則。

如果國際化尚未實現,請關閉全球化規則。

最初關閉性能規則。 在需要時進行優化。

讓其他人適合您的團隊和項目。 關閉不適用的個別規則。 特別是,可能需要調整命名規則。

編輯:最重要的是減少噪音。 如果每個項目都有200個警告並且持續數月,那么每個人都會忽略它們。 打開對您的團隊至關重要的規則,清理代碼以獲得100%的傳遞(或抑制異常 - 並且會有異常;這些是指導原則),然后強制保持代碼清潔。

您應該為項目激活的第一個規則是那些您在該項目中沒有任何違規的規則。 這樣您就可以避免引入新問題,而無需花費任何額外的清理工作。

至於其他項目,鑒於您已經在其他項目上使用代碼分析,那么最有可能打破規則的最佳輸入可能是那些項目工作的開發人員。 如果項目之間沒有足夠的重疊以從開發人員那里獲得有意義的反饋,則可能需要考慮從Visual Studio 2010中的Microsoft最低建議規則規則集中包含的規則開始。

如果您計划實際清除任何給定項目中的現有違規,則可能需要考慮使用FxCop而不是VS代碼分析,直到清理完成為止。 這將允許您立即激活規則,同時保持“清理”排除源代碼之外的現有違規。

如果您要本地化您的項目/它將在不同的國家/地區使用,那么肯定啟用本地化規則。 它會發現所有調用所有未指定CultureInfo的Format / Parse函數。 涉及未指定CultureInfo的錯誤在測試中很難找到,但是當你的法語客戶端會問:為什么你的程序不能正常工作/為什么你的程序在“,”作為小數分隔符時崩潰。

根據我的經驗,所有類型的代碼分析警告都會在代碼中顯示“隱藏”的錯誤或缺陷。 修復這些可以解決一些實際問題。 我還沒有找到我想要禁用的警告列表。

相反,我會一次打開一個項目,並在移動到下一個項目之前修復該項目中的所有警告。

如果你想要關閉,我會考慮不檢查命名規則(除非你是運送庫,API或其他外部公開的方法)和全球化規則。 (除非您的應用程序積極使用全球化)。 這有點取決於您的具體情況。

我有點同意Jeroen Huinink的回答

我會打開您認為項目應該遵循的所有規則並盡快修復它們。 您現在不必全部修復它們,但是當您通過修復缺陷或重構模塊中的方法時,您始終可以清除該方法或模塊中靜態分析所發現的問題。 新代碼應遵循您的規則,現有代碼應盡快轉換為遵守,但您不需要放棄所有代碼來實現。

您的開發團隊還可以查看項目的問題並確定其優先級,或者在問題跟蹤系統中為最關鍵的問題提交缺陷,以便他們能夠由相應的開發人員快速解決。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM