Code Review在項(xiàng)目開發(fā)中是一個(gè)老生常談的問題般码,作為項(xiàng)目成員,你是否有過很多次想做Code Review卻最終沒有做的遺憾磁餐?因?yàn)闃I(yè)務(wù)復(fù)雜、項(xiàng)目進(jìn)度緊張等原因耽擱了,想找組內(nèi)成員幫忙review下镐捧,偏偏有時(shí)候大家都很忙,導(dǎo)致本該開發(fā)做的事情錯(cuò)過了臭增,只能在以后想辦法彌補(bǔ)懂酱,但現(xiàn)實(shí)情況卻是很多時(shí)候可能只是想想。
實(shí)際上誊抛,無論其他同事是否能幫助自己做代碼檢查列牺,我們首先要保證的是自己開發(fā)的代碼在基本層面沒有問題,這里面不談業(yè)務(wù)邏輯問題拗窃,先看代碼編寫質(zhì)量的問題瞎领。除了根據(jù)自己的開發(fā)經(jīng)驗(yàn)發(fā)現(xiàn)代碼存在的問題以外,有時(shí)候我們需要借助一些工具來幫助我們做代碼檢查随夸,正所謂“工欲善其事九默,必先利其器”。在業(yè)界《阿里巴巴Java開發(fā)手冊(cè)》應(yīng)該是編程規(guī)范的標(biāo)桿了宾毒,對(duì)應(yīng)這本書阿里還開發(fā)一個(gè)插件驼修,這個(gè)插件應(yīng)該是這本書的踐行版了。
1.插件介紹
官方介紹如下:
為了讓開發(fā)者更加方便、快速將規(guī)范推動(dòng)并實(shí)行起來乙各,阿里巴巴基于手冊(cè)內(nèi)容勉躺,研發(fā)了一套自動(dòng)化的IDE檢測(cè)插件(IDEA、Eclipse)觅丰。該插件在掃描代碼后饵溅,將不符合規(guī)約的代碼按Blocker/Critical/Major三個(gè)等級(jí)顯示在下方,甚至在IDEA上妇萄,我們還基于Inspection機(jī)制提供了實(shí)時(shí)檢測(cè)功能蜕企,編寫代碼的同時(shí)也能快速發(fā)現(xiàn)問題所在。對(duì)于歷史代碼冠句,部分規(guī)則實(shí)現(xiàn)了批量一鍵修復(fù)的功能轻掩,如此爽心悅目的功能是不是很值得擁有?提升代碼質(zhì)量懦底,提高團(tuán)隊(duì)研發(fā)效能唇牧,插件將會(huì)一路同行。
用了這個(gè)插件聚唐,可以幫助我們做最基本的代碼審查丐重,使Java開發(fā)更高效,提高代碼開發(fā)質(zhì)量并降低代碼維護(hù)成本杆查。即使我們有時(shí)間進(jìn)行代碼檢查扮惦,安裝了這個(gè)插件也可以讓代碼檢查事半功倍。
2.插件安裝
插件鏈接點(diǎn)擊IDEA插件鏈接亲桦,Eclipse插件鏈接崖蜜,本文主要介紹IDEA插件的安裝。
1.在IDEA插件管理界面搜索“Alibaba Java Coding Guidelines”客峭,點(diǎn)擊Install進(jìn)行安裝豫领。
2.在菜單tool下,可以看到新安裝的這個(gè)插件舔琅,可以開啟或者關(guān)閉等恐,還可以切換語(yǔ)言。
3.插件使用
3.1 插件檢測(cè)模式
a.實(shí)時(shí)檢測(cè)
打開實(shí)時(shí)開關(guān)搏明,實(shí)時(shí)檢測(cè)功能就會(huì)對(duì)在開發(fā)的代碼進(jìn)行實(shí)時(shí)檢測(cè)鼠锈。如果有不規(guī)范的語(yǔ)句,
就會(huì)出現(xiàn)錯(cuò)誤提示星著。
使用場(chǎng)景:新項(xiàng)目開發(fā)
b.手動(dòng)檢測(cè)
-
按項(xiàng)目檢測(cè)
全局檢測(cè)购笆,點(diǎn)擊項(xiàng)目右鍵,彈出菜單中找到“編碼規(guī)范掃描”如圖所示虚循,
按文件檢測(cè)
在要檢查的文件上點(diǎn)擊右鍵同欠,與按項(xiàng)目檢測(cè)一樣样傍。
使用場(chǎng)景:檢查以前寫過的項(xiàng)目和接手他人交接的項(xiàng)目
3.2 掃描結(jié)果
插件的檢測(cè)結(jié)果分級(jí)為Blocker、Critical铺遂、Major衫哥。默認(rèn)按等級(jí)分組,方便統(tǒng)計(jì)每個(gè)級(jí)別錯(cuò)誤的數(shù)量襟锐。從下圖感嘆號(hào)能看出來撤逢,Blocker阻塞,其次為Critica關(guān)鍵的粮坞,這兩個(gè)級(jí)別盡快處理掉蚊荣。
4.常見問題
-
中文亂碼問題
在File->Settings ->Appearance&Behavior -> Appearance中,設(shè)置字體莫杈。
約束選擇
如果公司或者項(xiàng)目組對(duì)手冊(cè)里的規(guī)范有一些不同見解互例,可以對(duì)檢測(cè)約束進(jìn)行選擇,F(xiàn)ile-> Settings ->Inspections筝闹,如圖所示媳叨。
5.總結(jié)
總的來說,使用這個(gè)插件的幾點(diǎn)體會(huì)关顷。
- 插件能夠檢測(cè)出平時(shí)開發(fā)的一些細(xì)節(jié)問題糊秆,插件給出來了詳細(xì)的提示和解釋,甚至有的問題還可以quick fix解寝,可以說優(yōu)點(diǎn)非常多扩然。
- 用了插件之后能夠讓我們代碼中少一些Bug嗎?雖然真正編寫代碼的還是開發(fā)人員聋伦,但插件檢測(cè)起到了對(duì)編碼質(zhì)量的提示作用,我相信有編碼規(guī)范會(huì)讓開發(fā)人員避免出現(xiàn)低級(jí)錯(cuò)誤界睁,使代碼審查更高效觉增。
- 為什么要用這個(gè)插件?就是為了提高代碼質(zhì)量翻斟。以前總聽說一個(gè)詞—字如其人逾礁,意思是從一個(gè)人寫的字中能看出這個(gè)人的個(gè)性和精神狀態(tài)。對(duì)于軟件開發(fā)人員來說访惜,寫代碼如同寫字嘹履,從一個(gè)人平時(shí)寫的的代碼中也許能看出一個(gè)開發(fā)人員的基本素養(yǎng)和性格特點(diǎn)。寫出易讀易用的代碼债热,寫出執(zhí)行效率高的代碼應(yīng)該是每一個(gè)開發(fā)人員的追求砾嫉。
參考文獻(xiàn):
1.https://github.com/alibaba/p3c
2.https://mp.weixin.qq.com/s/KcPtgFbnU6CS3L49EKcnDg