github 检查代码质量_Android(8): 代码质量检查
代碼質(zhì)量檢查是持續(xù)性的工作,檢查的兩個基本工具是FindBugs和CheckStyle。在實際項目中,檢查的工作由測試人員實施,開發(fā)人員進行配合,形成日常性的工作。每天會對最新的代碼進行檢查,使用腳本(一般是測試用python寫的)對檢查結(jié)果進行解析,定位到代碼行并根據(jù)SVN記錄關(guān)聯(lián)責任人,輸出郵件,開發(fā)則根據(jù)郵件結(jié)果進行修復(fù)。
對于代碼進行質(zhì)量檢查,在剛開始會有一些抵觸情況。有的是之前沒有接觸過,有的是覺得需求已經(jīng)很緊了,還要花時間解決這些問題。還有一方面原因是一剛開始掃描出來的問題會特別多,特別是代碼規(guī)范的問題,好幾千條。但只要走出第一步,熟悉了規(guī)則,解決了一些問題積累經(jīng)驗,后面的問題就比較少了。
FindBugs
FindBugs是針對java的靜態(tài)分析工具,根據(jù)經(jīng)驗,確實能發(fā)現(xiàn)一些沒有意識到的問題,對提高代碼質(zhì)量還是有幫助。掃出的問題以java文件為單位,會定位到代碼行,并給出問題說明,處理起來也比較方便。
FindBugs有一些規(guī)則和級別,如果覺得有一些規(guī)則沒太大必要可以進行調(diào)整。印象中有兩個規(guī)則大家覺得比較“無聊”:第一個是有變量申明了但沒有使用,第二個是沒在靜態(tài)函數(shù)中訪問靜態(tài)變量。這兩個如果不處理也沒什么問題,但還是最好處理,形成最佳實踐。比如有沒有使用的變量,可能是代碼有Bug,應(yīng)該使用的,筆誤成了其它的變量;確實沒有使用的話,就應(yīng)該刪掉。
FindBugs在實際項目中,沒有集成到Android Studio,是測試對指定的代碼目錄進行了掃描。詳細的使用方法可參考FindBugs的官網(wǎng)。
CheckStyle
CheckStyle是代碼規(guī)范分析工具,保證團隊的代碼符合一個統(tǒng)一的代碼規(guī)范。CheckStyle的檢查也是根據(jù)定義的規(guī)范文件來的。實際項目中使用的規(guī)范文件據(jù)說是華為使用的,Github上有下載,我們使用的也是這份規(guī)范,并補充了一些規(guī)則。
CheckStyle有一個Android的插件,因些一般是集成到Android Studio中。
//添加Plugin
apply plugin: 'checkstyle'
//設(shè)置CheckStyle版本
/**
* 檢查代碼規(guī)范的checkstyle
* http://ju.outofmemory.cn/entry/187977
*/
checkstyle {
toolVersion '6.0'
showViolations true
}
//設(shè)置配置文件
task checkstyle(type: Checkstyle) {
configFile file("config/checkstyle/checkstyle.xml")
source 'src/main/java'
include '**/*.java'
exclude '**/gen/**'
ignoreFailures true
classpath = files()
}
配置好后,要進行檢查,執(zhí)行g(shù)radle checkstyle任務(wù)就好了,最終檢查結(jié)果會生成HTML和XML文件。結(jié)果也是同F(xiàn)indBugs一樣生成報告郵件。
在實際項目中,有爭議的還是規(guī)則。有些人之前沒有進行過代碼規(guī)范的訓練,已經(jīng)形成了自己的習慣,掃描出來問題就特別多,但還是以規(guī)則為主;且規(guī)則不宜作太大的修改,盡量跟公司內(nèi)還有業(yè)界保持一致。
有些規(guī)則的細節(jié),可根據(jù)項目實際情況調(diào)整。比如函數(shù)最多參數(shù)個數(shù)這個規(guī)則就調(diào)了好幾次,因為加入了一些歷史代碼,且不太好修改,只好調(diào)整規(guī)則。比如重復(fù)代碼的行數(shù),開始定10行,后來發(fā)現(xiàn)空行也算進去了,后面又調(diào)整成15行。其他的一些規(guī)則,如變量命名、方法命名則沒有什么好商量的,按規(guī)則的來,習慣就好了。
Lint Clean
在實際項目中,我們還使用了一個LintClean這個工具。主要作用是清除項目中沒有使用的資源文件及資源項,如有個xml、png或字符串沒有引用。它會掃描出來并進行刪除,也會將掃描結(jié)果保存到xml。通過持續(xù)清除項目中無效資源,即可保證工程整潔,也能防止包文件過大,雖然混淆也會清除無效資源,但還是有一定影響。
這個工具也是插件形式提供的,也可集成到項目,
dependencies {
classpath 'com.droidtitan:lint-cleaner-plugin:0.3.0'
}
apply plugin: 'com.droidtitan.lintcleaner'
配置好后,執(zhí)行g(shù)radle lintClean,就可進行檢查。有時,有些資源可能是resources.getIdentifier的使用的,這樣就要加一些白名單。LintClean也提供了加白名單的功能。檢查的結(jié)果也是由測試人員編寫的腳本進行解析,定位到責任人,形成報告并發(fā)送郵件。
跟LintClean一起,我們還加了另一個功能,就是掃描資源目錄下的png、jpg等圖片資源文件,當發(fā)現(xiàn)文件大小超過100KB,會單獨列出來,當成文件過大警告。根據(jù)項目的實際經(jīng)驗,一般單張圖片大小比較少的情況下需要100K。
總結(jié)
以上是生活随笔為你收集整理的github 检查代码质量_Android(8): 代码质量检查的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 胸腔积水怎么治疗
- 下一篇: android 5.0状态栏下载地址,A