大家應(yīng)該都有過(guò)寫完代碼后review的情況;用于提高編碼質(zhì)量,盡早的發(fā)現(xiàn)問(wèn)題;節(jié)約開發(fā)時(shí)間和成本。
但review 這個(gè)過(guò)程往往要消耗 更多的開發(fā)資源。
所以就出現(xiàn) 自動(dòng)檢測(cè)可能代碼中存在的問(wèn)題的工具 ,我們一般把這類工具稱為靜態(tài)代碼掃描工具。
常見(jiàn)的靜態(tài)代碼掃描工具有 checkstyle ,findBug,PMD,Jtest等等,它們有的用來(lái)尋找編碼格式問(wèn)題,有的用來(lái)定位可能存在的BUG。代碼規(guī)范工具呢 。顧名思義主要關(guān)心其編碼格式,規(guī)范。除了最后的靜態(tài)代碼掃描外,有些插件也支持在編碼過(guò)程中實(shí)時(shí)顯示規(guī)范問(wèn)題。
代碼規(guī)范工具 是自動(dòng)比對(duì)代碼與規(guī)范差異的一個(gè)工具,用以減少實(shí)現(xiàn)這一規(guī)范需要耗費(fèi)的成本。
創(chuàng)新互聯(lián)擁有一支富有激情的企業(yè)網(wǎng)站制作團(tuán)隊(duì),在互聯(lián)網(wǎng)網(wǎng)站建設(shè)行業(yè)深耕十載,專業(yè)且經(jīng)驗(yàn)豐富。十載網(wǎng)站優(yōu)化營(yíng)銷經(jīng)驗(yàn),我們已為成百上千中小企業(yè)提供了成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)解決方案,按需定制制作,設(shè)計(jì)滿意,售后服務(wù)無(wú)憂。所有客戶皆提供一年免費(fèi)網(wǎng)站維護(hù)!代碼規(guī)范的目的對(duì)于整個(gè)團(tuán)隊(duì)而言,代碼規(guī)范的目的實(shí)際上是為了提高效率。
秦始皇書同文,車同軌,定義了一個(gè)規(guī)范,才會(huì)讓整體的交流變得簡(jiǎn)單,輕松。代碼也是一樣。
我們編碼過(guò)程中,免不了團(tuán)隊(duì)協(xié)作,免不了迭代,升級(jí),維護(hù)。
從自己角度看 遵循開發(fā)規(guī)范,可以讓自己在后續(xù)迭代中,對(duì)于之前代碼能夠盡快熟悉,不會(huì)寫了就忘,不會(huì)為了之前的一個(gè)問(wèn)題,花費(fèi)特別長(zhǎng)的時(shí)間去熟悉邏輯 ,尋找BUG
從團(tuán)隊(duì)的角度看,需求可能不一定是一個(gè)人維護(hù)迭代升級(jí),遵循規(guī)范能夠減少團(tuán)隊(duì)的交流溝通成本。這樣后面可以理直氣壯的說(shuō)一句,代碼(注釋)里面寫的很詳細(xì),而不是代碼需要講解才能看的懂。
整體介紹
Alibaba Java Coding Guidelines 專注于Java代碼規(guī)范,目的是讓開發(fā)者更加方便、快速規(guī)范代碼格式。該插件在掃描代碼后,將不符合規(guī)約的代碼按 Blocker、Critical、Major 三個(gè)等級(jí)顯示出來(lái),并且大部分可以自動(dòng)修復(fù),它還基于 Inspection 機(jī)制提供了實(shí)時(shí)檢測(cè)功能,編寫代碼的同時(shí)也能快速發(fā)現(xiàn)問(wèn)題所在。
安裝步驟
File >Settings >Plugins >Marketplace 搜索 “Alibaba Java Coding Guidelines”,按照提示進(jìn)行安裝,然后重啟即可。
使用說(shuō)明
3.1.?運(yùn)行方式:
(1) .可以Tools >阿里編碼規(guī)約 >編碼規(guī)約掃描
(2)在編輯界面或者項(xiàng)目區(qū)域點(diǎn)擊右鍵,在右鍵菜單中選擇“編碼規(guī)約掃描”即可:
3.2.菜單功能:
編碼規(guī)約掃描:開始掃描代碼
打開/關(guān)閉實(shí)時(shí)檢測(cè)功能:實(shí)時(shí)檢測(cè)代碼,一般機(jī)器性能比較好的話可以開啟這項(xiàng)功能
切換語(yǔ)言至英文:中英文切換
3.3. 運(yùn)行結(jié)果
掃描完成后顯示結(jié)果如下,我們可以看到掃描結(jié)果主要分為 Blocker(阻擋者)、Critical(嚴(yán)重問(wèn)題)、Major(主要的)三個(gè)大類,它們表示的是問(wèn)題的嚴(yán)重程度,嚴(yán)重程度由高到低為:Blocker >Critical >Major,至于每一類中都會(huì)包含什么樣的問(wèn)題,圖中的內(nèi)容已經(jīng)說(shuō)明了一切?
3.4. 工具欄介紹
Rerun Inspection:重新運(yùn)行一次掃描
Close:關(guān)閉真?zhèn)€AJCG面板
Expand All:展開結(jié)果的樹狀結(jié)構(gòu),整個(gè)結(jié)果是樹狀結(jié)構(gòu)的。
Collapse All:收起結(jié)果的樹狀結(jié)構(gòu)
Go Pre Problem:選擇上一個(gè)問(wèn)題
Go Next Problem:選擇下一個(gè)問(wèn)題
Help:幫助
Group by Serverity:
Group by derectory:按目錄分組/按類名分組間切換
Filter resoled items:過(guò)濾掉已經(jīng)解決的項(xiàng)
Autoscroll to Source:自動(dòng)滾動(dòng)到源碼
Export:導(dǎo)出,可以導(dǎo)出為XML和HTML兩種格式
Edit Settings:編輯設(shè)置
SonarLit
sonarlit 插件的安裝及使用
安裝
打開IntelliJ IDEA—>settings—>plugins,在Marketplace搜索SonarLint,下載安裝,重啟IntelliJ IDEA。
也可以選擇下載插件,丟到plugin 目錄手動(dòng)安裝
sonarlint-intellij-6.7.0.45926.zip
使用說(shuō)明
配置自動(dòng)掃描
打開IntelliJ IDEA—>settings—>Other Settings—>SonarLint General Settings或者IntelliJ IDEA—>settings—>SonarLint General Settings,勾選Settings—>Automatically trigger analysis,點(diǎn)擊Apply,再點(diǎn)擊OK。
手動(dòng)執(zhí)行掃描
鼠標(biāo)移動(dòng)到項(xiàng)目根目錄,右鍵選擇Ayalyze,選擇Ayalyze with SonarLint。
掃描后的結(jié)果說(shuō)明?
SonarLint插件在IntelliJ IDEA 中頁(yè)面顯示的名詞解釋:
Current file:當(dāng)前文件(展示當(dāng)前文件存在的哪些問(wèn)題,以及解決方法)
Rule:規(guī)則(告訴你問(wèn)題的具體內(nèi)容,并在最后告訴你如何解決這個(gè)問(wèn)題)
Report:報(bào)告(鼠標(biāo)移動(dòng)到項(xiàng)目根目錄,右鍵選擇Ayalyze,選擇Ayalyze with SonarLint,完成之后的結(jié)果顯示,包含整個(gè)項(xiàng)目的所有文件的問(wèn)題)
Locations:位置(告訴你,在哪個(gè)地方有問(wèn)題,問(wèn)題的重復(fù)位置)
Issues:?jiǎn)栴}
每個(gè)issue有五個(gè)等級(jí):
BLOCKER(致命):會(huì)影響應(yīng)用程序的缺陷:內(nèi)存泄漏,未關(guān)閉的JDBC連接…必須立刻修復(fù)的代碼
CRITICAL(關(guān)鍵 ):可能會(huì)影響應(yīng)用程序的缺陷或者是安全性缺陷:空的catch塊,sql注入,…必須立刻查看代碼;
MAJOR(主要):可能會(huì)影響開發(fā)者效率的質(zhì)量缺陷:未覆蓋的代碼,重復(fù)塊,未使用的參數(shù)….
MINOR(微?。嚎赡軙?huì)影響開發(fā)者效率的質(zhì)量缺陷:每行不能太長(zhǎng),“switch”語(yǔ)句應(yīng)該至少有三個(gè)條件,….
INFO(未知):既不是缺陷也不是質(zhì)量問(wèn)題,只是一個(gè)發(fā)現(xiàn)。
每個(gè)issue有三個(gè)狀態(tài)定義:
Bug:竊聽(tīng)器(可靠性),避免錯(cuò)誤和未定義的行為
Vulnerability:漏洞(安全),避免破壞或攻擊
Code Smell:代碼嗅覺(jué)(可維護(hù)性),簡(jiǎn)化代碼更新,并提高開發(fā)人員的速度
具體用法:
Locations:?
左邊信息展示,假如這個(gè)問(wèn)題在當(dāng)前文件中出現(xiàn)多次,則在這條問(wèn)題的后面會(huì)有的標(biāo)識(shí),選中并鼠標(biāo)雙擊之后,在右邊顯示具體的位置,如圖所示[注:括號(hào)里面的數(shù)字表示問(wèn)題在第幾行的第幾列]。
Report:
Log:
如何去掉不需要的掃描規(guī)則
1.打開settings
2.選擇 tools-->Sonarlint -->Rulse?→搜索對(duì)應(yīng)的規(guī)則
插件對(duì)比
插件 | 格式檢查 | BUG掃描,漏洞分析 | 更新時(shí)間 | 掃描信息收集 | 規(guī)則自定義程度 | 插件下載量 | marktplace 評(píng)分 | 集成進(jìn)其他流水線或倉(cāng)庫(kù)組件 | |
---|---|---|---|---|---|---|---|---|---|
Alibaba Java Coding Guidelines | 支持 | 不支持 | 不支持 | 動(dòng)態(tài)掃描支持 最終結(jié)果不支持 | 不支持 | ||||
SonarLit | 支持 | 支持 | 支持(sonarqube) | 支持 | 支持(gitlab,jenkins) |
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧