我想要做的是讓我的CI服務器運行一個工具來掃描代碼並根據定義的指南檢測出現的任何編碼標準違規。我將使用輸出提示構建「失敗」,直到問題得到解決。C++的自動編碼標準違規檢測
我遇到的問題是,我的工程師花費大部分時間在代碼評審中尋找編碼標準違規行爲,而不是尋找錯誤(70-76%的缺陷發現與標準相關)。我的理論是,如果他們不需要尋找違反他們將要尋找的標準的違規行爲。
這樣的事情是否存在?
我想要做的是讓我的CI服務器運行一個工具來掃描代碼並根據定義的指南檢測出現的任何編碼標準違規。我將使用輸出提示構建「失敗」,直到問題得到解決。C++的自動編碼標準違規檢測
我遇到的問題是,我的工程師花費大部分時間在代碼評審中尋找編碼標準違規行爲,而不是尋找錯誤(70-76%的缺陷發現與標準相關)。我的理論是,如果他們不需要尋找違反他們將要尋找的標準的違規行爲。
這樣的事情是否存在?
如果涉及到代碼格式化的問題 - 你可以執行的代碼美化調用上籤到庫(的astyle,縮進,...)
下一個是PC-lint/Flexelint工具,其中也有規則,以執行各種編碼標準準則。但它是非免費的。您必須熟悉它並正確配置它以避免誤報。
您也可以檢查Vera++,但我沒有經驗。
你想要什麼叫靜態分析
其中2個是免費的:
cppcheck - 開源工具,用來檢查幾種類型的錯誤,包括 使用STL的。 cpplint開源的自動檢查程序,使 肯定C++文件遵循Google的C++風格。
那麼一些商業的編譯器包括靜態分析:Visual Studio中(團隊系統及以上) 英特爾編譯器(我聽說這是非常定製,但我還沒有親自使用它尚未)
也許你的真實問題在於你的編碼標準太嚴格和適得其反。 – Mankarse
我不同意,但我知道團隊和環境的好處(更不用說我們的標準實際涵蓋了什麼)。不過,我確實感到,我正試圖在維護代碼一致性的同時減輕團隊的負擔,支持更有效的代碼評審。 – clamontagne
另請參閱:http://stackoverflow.com/questions/93260/a-free-tool-to-check-c-c-source-code-against-a-set-of-coding-standards – jchl