開(kāi)發(fā)人員通常需要各種“助手”——包括靜態(tài)代碼分析器,利用它們可以在開(kāi)發(fā)的早期階段發(fā)現(xiàn)并修復(fù)有缺陷的代碼。感興趣的同學(xué)可以參加java培訓(xùn),你可以了解一些靜態(tài)分析器并學(xué)會(huì)使用它們。
IntelliJ IDEA內(nèi)置分析器
IntelliJ
IDEA中內(nèi)置的Java代碼靜態(tài)分析器與專(zhuān)門(mén)的靜態(tài)分析工具一樣好。通過(guò)檢查來(lái)搜索可疑、雜亂或有缺陷的代碼片段。他們使用各種現(xiàn)代靜態(tài)分析方法:數(shù)據(jù)流分析和模式匹配。
由于靜態(tài)分析一直在代碼編輯模式下運(yùn)行,因此在IntelliJ
IDEA中,你可以在錯(cuò)誤發(fā)生幾秒鐘后修復(fù)錯(cuò)誤,編輯器突出顯示有缺陷的代碼片段。
SonarJava
SonarJava是SonarSource提供的Java靜態(tài)代碼分析器,它將此工具定位為其他工具中最好的一個(gè)。在java培訓(xùn)中,也有關(guān)于這個(gè)分析器的學(xué)習(xí)與使用。SonarJava
的特征有:
150+錯(cuò)誤檢測(cè)規(guī)則;
350+檢測(cè)代碼氣味的規(guī)則;
40+檢測(cè)潛在漏洞的規(guī)則;
與Maven、Gradle、Ant、Eclipse、IntelliJ IDEA、VS代碼的集成;
能夠擴(kuò)展自定義診斷規(guī)則;
SAST專(zhuān)用工具:大多數(shù)診斷規(guī)則是根據(jù)CWE、CERT、OWASP制定的。
PVS-Studio
PVS-Studio是基于Spoon開(kāi)源庫(kù)。它接收源代碼作為輸入,建立了一個(gè)具有語(yǔ)義信息的設(shè)計(jì)良好的AST模型。
目前,這個(gè)分析器使用超過(guò)105條診斷規(guī)則來(lái)檢測(cè)各種代碼缺陷。它們包括打字錯(cuò)誤、取消對(duì)空引用的引用、無(wú)法訪(fǎng)問(wèn)的代碼、數(shù)組索引超出范圍、違反方法使用約定等。通過(guò)參加java培訓(xùn),你能在短時(shí)間學(xué)會(huì)java的很多知識(shí)和技能,包括靜態(tài)分析器的使用。
PMD
PMD是一個(gè)開(kāi)源的靜態(tài)分析器。它檢測(cè)常見(jiàn)的開(kāi)發(fā)錯(cuò)誤:未使用的變量、空塊、創(chuàng)建不必要的對(duì)象等等。
盡管PMD分析了源代碼,但還是建議在分析之前構(gòu)建項(xiàng)目。這允許提取有關(guān)所分析代碼中使用的類(lèi)型的信息。
如果我們查看所有的診斷規(guī)則,那么PMD更關(guān)注于解決編碼風(fēng)格問(wèn)題和檢測(cè)明顯錯(cuò)誤。診斷規(guī)則可能相互矛盾,因此你需要在使用分析儀之前對(duì)其進(jìn)行配置。
到目前為止,有許多工具可用,它們各有優(yōu)缺點(diǎn),但不要只停留在一個(gè)分析器上,使用幾個(gè)相互補(bǔ)充的分析器-它們可以創(chuàng)建一個(gè)強(qiáng)大的屏障,保護(hù)你的代碼不受bug和漏洞的影響。想學(xué)習(xí)怎么使用這些分析器,不妨報(bào)個(gè)java培訓(xùn)班,有經(jīng)驗(yàn)豐富的專(zhuān)業(yè)講師線(xiàn)下面授指導(dǎo)教學(xué),及時(shí)解決學(xué)習(xí)上的問(wèn)題,讓你獲得快速提升。