日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > Android >内容正文

Android

github 检查代码质量_Android(8): 代码质量检查

發(fā)布時間:2023/12/4 Android 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 github 检查代码质量_Android(8): 代码质量检查 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

代碼質(zhì)量檢查是持續(xù)性的工作,檢查的兩個基本工具是FindBugs和CheckStyle。在實(shí)際項(xiàng)目中,檢查的工作由測試人員實(shí)施,開發(fā)人員進(jìn)行配合,形成日常性的工作。每天會對最新的代碼進(jìn)行檢查,使用腳本(一般是測試用python寫的)對檢查結(jié)果進(jìn)行解析,定位到代碼行并根據(jù)SVN記錄關(guān)聯(lián)責(zé)任人,輸出郵件,開發(fā)則根據(jù)郵件結(jié)果進(jìn)行修復(fù)。

對于代碼進(jìn)行質(zhì)量檢查,在剛開始會有一些抵觸情況。有的是之前沒有接觸過,有的是覺得需求已經(jīng)很緊了,還要花時間解決這些問題。還有一方面原因是一剛開始掃描出來的問題會特別多,特別是代碼規(guī)范的問題,好幾千條。但只要走出第一步,熟悉了規(guī)則,解決了一些問題積累經(jīng)驗(yàn),后面的問題就比較少了。

FindBugs

FindBugs是針對java的靜態(tài)分析工具,根據(jù)經(jīng)驗(yàn),確實(shí)能發(fā)現(xiàn)一些沒有意識到的問題,對提高代碼質(zhì)量還是有幫助。掃出的問題以java文件為單位,會定位到代碼行,并給出問題說明,處理起來也比較方便。

FindBugs有一些規(guī)則和級別,如果覺得有一些規(guī)則沒太大必要可以進(jìn)行調(diào)整。印象中有兩個規(guī)則大家覺得比較“無聊”:第一個是有變量申明了但沒有使用,第二個是沒在靜態(tài)函數(shù)中訪問靜態(tài)變量。這兩個如果不處理也沒什么問題,但還是最好處理,形成最佳實(shí)踐。比如有沒有使用的變量,可能是代碼有Bug,應(yīng)該使用的,筆誤成了其它的變量;確實(shí)沒有使用的話,就應(yīng)該刪掉。

FindBugs在實(shí)際項(xiàng)目中,沒有集成到Android Studio,是測試對指定的代碼目錄進(jìn)行了掃描。詳細(xì)的使用方法可參考FindBugs的官網(wǎng)。

CheckStyle

CheckStyle是代碼規(guī)范分析工具,保證團(tuán)隊(duì)的代碼符合一個統(tǒng)一的代碼規(guī)范。CheckStyle的檢查也是根據(jù)定義的規(guī)范文件來的。實(shí)際項(xiàng)目中使用的規(guī)范文件據(jù)說是華為使用的,Github上有下載,我們使用的也是這份規(guī)范,并補(bǔ)充了一些規(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()

}

配置好后,要進(jìn)行檢查,執(zhí)行g(shù)radle checkstyle任務(wù)就好了,最終檢查結(jié)果會生成HTML和XML文件。結(jié)果也是同F(xiàn)indBugs一樣生成報告郵件。

在實(shí)際項(xiàng)目中,有爭議的還是規(guī)則。有些人之前沒有進(jìn)行過代碼規(guī)范的訓(xùn)練,已經(jīng)形成了自己的習(xí)慣,掃描出來問題就特別多,但還是以規(guī)則為主;且規(guī)則不宜作太大的修改,盡量跟公司內(nèi)還有業(yè)界保持一致。

有些規(guī)則的細(xì)節(jié),可根據(jù)項(xiàng)目實(shí)際情況調(diào)整。比如函數(shù)最多參數(shù)個數(shù)這個規(guī)則就調(diào)了好幾次,因?yàn)榧尤肓艘恍v史代碼,且不太好修改,只好調(diào)整規(guī)則。比如重復(fù)代碼的行數(shù),開始定10行,后來發(fā)現(xiàn)空行也算進(jìn)去了,后面又調(diào)整成15行。其他的一些規(guī)則,如變量命名、方法命名則沒有什么好商量的,按規(guī)則的來,習(xí)慣就好了。

Lint Clean

在實(shí)際項(xiàng)目中,我們還使用了一個LintClean這個工具。主要作用是清除項(xiàng)目中沒有使用的資源文件及資源項(xiàng),如有個xml、png或字符串沒有引用。它會掃描出來并進(jìn)行刪除,也會將掃描結(jié)果保存到xml。通過持續(xù)清除項(xiàng)目中無效資源,即可保證工程整潔,也能防止包文件過大,雖然混淆也會清除無效資源,但還是有一定影響。

這個工具也是插件形式提供的,也可集成到項(xiàng)目,

dependencies {

classpath 'com.droidtitan:lint-cleaner-plugin:0.3.0'

}

apply plugin: 'com.droidtitan.lintcleaner'

配置好后,執(zhí)行g(shù)radle lintClean,就可進(jìn)行檢查。有時,有些資源可能是resources.getIdentifier的使用的,這樣就要加一些白名單。LintClean也提供了加白名單的功能。檢查的結(jié)果也是由測試人員編寫的腳本進(jìn)行解析,定位到責(zé)任人,形成報告并發(fā)送郵件。

跟LintClean一起,我們還加了另一個功能,就是掃描資源目錄下的png、jpg等圖片資源文件,當(dāng)發(fā)現(xiàn)文件大小超過100KB,會單獨(dú)列出來,當(dāng)成文件過大警告。根據(jù)項(xiàng)目的實(shí)際經(jīng)驗(yàn),一般單張圖片大小比較少的情況下需要100K。

總結(jié)

以上是生活随笔為你收集整理的github 检查代码质量_Android(8): 代码质量检查的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。