代碼管理和檢查平臺彙總

程序員離不開代碼檢查,有的是技術團隊是每週五進行一次代碼審覈,有的團隊是用Review Board等工具進行Code Review。有的團隊是先用工具進行代碼的靜態分析,再進行人爲的Code Review。java

下面咱們總結了 代碼靜態分析工具、代碼審覈工具、代碼質量管理平臺、iOS分析工具。包含了java等服務端的工具,還有iOS的工具。git

1、代碼靜態分析程序員

靜態分析 是指在不運行代碼的條件下,進行代碼分析。架構

靜態分析 能夠是標示可能的錯誤代碼,或者不符合規範的代碼。svn

好比 規範要求每一個方法名首字母要小寫,而後你寫成了大寫,靜態分析工具就能分析出來。工具

java等服務端代碼能夠用:單元測試

一、Checkstyle :經過檢查對代碼編碼格式,命名約定,Javadoc,類設計等方面進行代碼規範和風格的檢查,從而有效約束開發人員更好地遵循代碼編寫規範。測試

二、FindBugs :經過檢查類文件或 JAR 文件,將字節碼與一組缺陷模式進行對比從而發現代碼缺陷,完成靜態代碼分析。FindBugs 既提供可視化 UI 界面,同時也能夠做爲 Eclipse 插件使用。編碼

三、PMD :經過其內置的編碼規則對 Java 代碼進行靜態檢查,主要包括對潛在的 bug,未使用的代碼,重複的代碼,循環體建立新對象等問題的檢驗。插件

2、代碼審覈工具

Code Review也就是代碼審覈。代碼審覈工具最大的意義在於:只有通過別人審覈經過的代碼才能提交到 git或者svn的服務端。這樣就保證了代碼的水準。

經常使用的代碼審覈工具:Review Board、Github 、Codestriker、Groogle 、Rietveld、JCR等。

3、代碼質量管理平臺

經常使用的:SonarQube,能夠檢測下面的問題:

一、糟糕的複雜度分佈

文件、類、方法等,若是複雜度太高 將難以改變,並很容易出現問題。

二、重複

sonar能夠展現源碼中重複嚴重的地方

三、缺少單元測試

統計單元測試覆蓋率

四、沒有代碼標準

sonar能夠經過PMD,CheckStyle,Findbugs等等代碼規則檢測工具規範代碼編寫

五、沒有足夠 的 或者過多 的註釋

沒有註釋將使代碼可讀性變差,過多的註釋是冗餘的

六、潛在的bug

sonar能夠經過PMD,CheckStyle,Findbugs等等代碼規則檢測工具檢測出潛在的bug

七、糟糕的設計

經過sonar能夠找出循環,展現包與包、類與類之間的相互依賴關係

能夠檢測自定義的架構規則

檢測耦合

4、

iOS的靜態檢測(不能檢測代碼規範)

一、Facebook Infer

Facebook 稱該工具幫助其每月檢查出數百個應用中潛在的 Bug,例如一些空指針訪問、資源和內存泄漏等等

二、Clang Static Analyzer

三、使用Uncrustify 格式化 Xcode代碼

相關文章
相關標籤/搜索