新聞中心
FindBugs解釋

網(wǎng)站建設(shè)哪家好,找成都創(chuàng)新互聯(lián)公司!專注于網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、微信平臺小程序開發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了東安免費(fèi)建站歡迎大家使用!
FindBugs 是一個(gè)靜態(tài)分析工具,它檢查類或者 JAR 文件,將字節(jié)碼與一組缺陷模式進(jìn)行對比以發(fā)現(xiàn)可能的問題。之所以叫做靜態(tài)分析工具,是因?yàn)樗诓粚?shí)際運(yùn)行程序的情況對軟件進(jìn)行分析。使用findbugs有很多種方式,從 GUI、從命令行、使用 Ant、作為 Eclipse 插件程序和使用 Maven,甚至作為hudson持續(xù)集成的插件。
findbugs自己定義了一系列的檢測器,1.3.9版本的檢測器有83種Bad practice(不好的習(xí)慣),133種Correctness(正確性),2種Experimental(實(shí)驗(yàn)性問題),1種 Internationalization(國際化問題),12種Malicious code vulnerability(惡意的代碼),41種Multithreaded correctness(線程問題),27種Performance(性能問題),9種Security(安全性問題),62種Dodgy(狡猾的問題)。
可能大家更感興趣的是它的工作原理,我們可以首先看一下eclipse插件下面的lib包:
其中的bcel.jar和asm-xx.jar都是對java字節(jié)碼(通過命令javap -c 類名 反編譯class文件)的操作,原理都是在類被裝載虛擬機(jī)之前,動(dòng)態(tài)修改類(可以直接創(chuàng)造類,也就是說不經(jīng)過java編譯器那一步),bcel是apache下面的一個(gè)開源項(xiàng)目,而asm是由法國某電信公司的研發(fā)工程師負(fù)責(zé)。
在公司內(nèi)部推廣findbugs的時(shí)候遇到一些阻力,其中有一個(gè)很重要的原因就是很多人認(rèn)為黃色臭蟲沒有多大用處,為此我歷時(shí)一個(gè)月對公司內(nèi)部的一些代碼進(jìn)行了解釋,大約有50多種,沒用弄完,因?yàn)楣ぷ髁繉?shí)在太大,有些bug我自己都要想半天,還要查找很多資料才能說服別人,文檔詳見附件,當(dāng)然都是去掉了公司業(yè)務(wù)和邏輯的,希望分享出來對有些人有用。
【編輯推薦】
- Ubuntu安裝Eclipse-SDK-3.3小結(jié)
- Eclipse插件jinto資源配置文件
- Eclipse啟動(dòng)參數(shù)大全
- 深入淺出Eclipse RCP(1):Hello RCP
- Eclipse自動(dòng)補(bǔ)全增強(qiáng)
網(wǎng)站標(biāo)題:Findbugs反模式的分享
瀏覽路徑:http://fisionsoft.com.cn/article/djeoidh.html


咨詢
建站咨詢
