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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

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

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

代碼質(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)容,希望文章能夠幫你解決所遇到的問題。

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