欧美亚洲综合图区在线|天天射天天干国产成卜|99久久免费国产精精品|国产的欧美一区二区三区|日韩中文字幕无码不卡专区|亚麻成人aV极品一区二区|国产成人AV区一区二区三|成人免费一区二区三区视频网站

當(dāng)前位置:首頁(yè) > 軟件開(kāi)放 > 正文內(nèi)容

java項(xiàng)目文檔怎么寫(xiě)(java項(xiàng)目設(shè)計(jì)文檔)

軟件開(kāi)放1年前 (2023-08-12)530

隨著業(yè)務(wù)的發(fā)展,系統(tǒng)會(huì)越來(lái)越龐大,原本簡(jiǎn)單穩(wěn)定的功能,可能在不斷迭代后復(fù)雜度上升,潛在的風(fēng)險(xiǎn)也隨之暴露,導(dǎo)致最終服務(wù)不穩(wěn)定,造成業(yè)務(wù)價(jià)值的損失。而為了減少這種情況,其中一種比較好的方式就是提高代碼質(zhì)量,比如通過(guò)代碼審查,從而降低錯(cuò)誤風(fēng)險(xiǎn),但是,代碼審查難度大,代碼缺陷、漏洞不易發(fā)現(xiàn),且審查工作隨著代碼量增加而增加,審查效率低。

工欲善其事,必先利其器,因此,這篇文章給大家介紹幾種檢查代碼質(zhì)量的利器,Alibaba Java Coding Guidelines、CheckStyle、PMD、FindBugs、SonarLint,讓你在關(guān)注代碼質(zhì)量的同時(shí),減少 code review 的工作量,提高 code review 的效率,并通過(guò)代碼質(zhì)量分析去反向提升我們的代碼編寫(xiě)能力。

一、Alibaba Java Coding Guidelines1、整體介紹:

Alibaba Java Coding Guidelines 專(zhuān)注于Java代碼規(guī)范,目的是讓開(kāi)發(fā)者更加方便、快速規(guī)范代碼格式。該插件在掃描代碼后,將不符合規(guī)約的代碼按 Blocker、Critical、Major 三個(gè)等級(jí)顯示出來(lái),并且大部分可以自動(dòng)修復(fù),它還基于 Inspection 機(jī)制提供了實(shí)時(shí)檢測(cè)功能,編寫(xiě)代碼的同時(shí)也能快速發(fā)現(xiàn)問(wèn)題所在。

阿里巴巴規(guī)約掃描包括:(1)OOP規(guī)約 (2)并發(fā)處理 (3)控制語(yǔ)句 (4)命名規(guī)約 (5)常量定義 (6)注釋規(guī)范

阿里巴巴規(guī)約掃描包括:(1)OOP規(guī)約 (2)并發(fā)處理 (3)控制語(yǔ)句 (4)命名規(guī)約 (5)常量定義 (6)注釋規(guī)范

File Settings Plugins Marketplace 搜索 “Alibaba Java Coding Guidelines”,按照提示進(jìn)行安裝,然后重啟即可。

3、使用說(shuō)明:

3.1、運(yùn)行方式:

(1)可以Tools 阿里編碼規(guī)約 編碼規(guī)約掃描

展開(kāi)全文

(2)在編輯界面或者項(xiàng)目區(qū)域點(diǎn)擊右鍵,在右鍵菜單中選擇“編碼規(guī)約掃描”即可:

3.2、菜單功能:

(1)編碼規(guī)約掃描:開(kāi)始掃描代碼

(2)打開(kāi)/關(guān)閉實(shí)時(shí)檢測(cè)功能:實(shí)時(shí)檢測(cè)代碼,一般機(jī)器性能比較好的話(huà)可以開(kāi)啟這項(xiàng)功能

(3)切換語(yǔ)言至英文:中英文切換

3.3、運(yùn)行結(jié)果:

掃描完成后顯示結(jié)果如下,我們可以看到掃描結(jié)果主要分為 Blocker(阻擋者)、Critical(嚴(yán)重問(wèn)題)、Major(主要的)三個(gè)大類(lèi),它們表示的是問(wèn)題的嚴(yán)重程度,嚴(yán)重程度由高到低為:Blocker Critical Major,至于每一類(lèi)中都會(huì)包含什么樣的問(wèn)題,圖中的內(nèi)容已經(jīng)說(shuō)明了一切。

選中其中的一個(gè)問(wèn)題項(xiàng)目,會(huì)出現(xiàn)如下內(nèi)容(如果當(dāng)前鼠標(biāo)點(diǎn)擊的是最終項(xiàng),右邊區(qū)域顯示的是其它的內(nèi)容,后面會(huì)再講到):

(1)指定區(qū)域搜索同一類(lèi)問(wèn)題:

當(dāng)點(diǎn)擊③處的按鈕時(shí),會(huì)彈出如下按鈕:

這里選擇掃描區(qū)域,來(lái)掃描鼠標(biāo)選中的同類(lèi)問(wèn)題。如果按照默認(rèn)選擇,那么運(yùn)行后的結(jié)果就如下圖所示:

這里我們可以看到,顯示了整個(gè)Project中的所有該類(lèi)的問(wèn)題。

(2)預(yù)覽具體的不規(guī)范代碼:

如果點(diǎn)擊的是最終的問(wèn)題點(diǎn)或者問(wèn)題所在的類(lèi)文件,那顯示的就是如下界面,預(yù)覽該處不規(guī)范的代碼。

3.4、工具欄功能介紹:

(1)Rerun Inspection:重新運(yùn)行一次掃描

(2)Close:關(guān)閉真?zhèn)€AJCG面板

(3)Expand All:展開(kāi)結(jié)果的樹(shù)狀結(jié)構(gòu),整個(gè)結(jié)果是樹(shù)狀結(jié)構(gòu)的。

(4)Collapse All:收起結(jié)果的樹(shù)狀結(jié)構(gòu)

(5)Go Pre Problem:選擇上一個(gè)問(wèn)題

(6)Go Next Problem:選擇下一個(gè)問(wèn)題

(7)Help:幫助

(8)Group by Serverity:(不知道如何描述)

(9)Group by derectory:按目錄分組/按類(lèi)名分組間切換

(10)Filter resoled items:過(guò)濾掉已經(jīng)解決的項(xiàng)

(11)Autoscroll to Source:自動(dòng)滾動(dòng)到源碼

(12)Export:導(dǎo)出,可以導(dǎo)出為XML和HTML兩種格式

(13)Edit Settings:編輯設(shè)置

(1)Rerun Inspection:重新運(yùn)行一次掃描

(2)Close:關(guān)閉真?zhèn)€AJCG面板

(3)Expand All:展開(kāi)結(jié)果的樹(shù)狀結(jié)構(gòu),整個(gè)結(jié)果是樹(shù)狀結(jié)構(gòu)的。

(4)Collapse All:收起結(jié)果的樹(shù)狀結(jié)構(gòu)

(5)Go Pre Problem:選擇上一個(gè)問(wèn)題

(6)Go Next Problem:選擇下一個(gè)問(wèn)題

(7)Help:幫助

(8)Group by Serverity:(不知道如何描述)

(9)Group by derectory:按目錄分組/按類(lèi)名分組間切換

(10)Filter resoled items:過(guò)濾掉已經(jīng)解決的項(xiàng)

(11)Autoscroll to Source:自動(dòng)滾動(dòng)到源碼

(12)Export:導(dǎo)出,可以導(dǎo)出為XML和HTML兩種格式

(13)Edit Settings:編輯設(shè)置

CheckStyle 側(cè)重檢查編碼格式和代碼風(fēng)格規(guī)范,如命名規(guī)范、Javadoc注釋規(guī)范、空格規(guī)范、size度量(如過(guò)長(zhǎng)的方法)、重復(fù)代碼、多余Imports等,從而有效約束開(kāi)發(fā)人員更好地遵循代碼編寫(xiě)規(guī)范。Checkstyle主要是文法層面的代碼編寫(xiě)規(guī)范的分析,對(duì)bug幾乎沒(méi)什么發(fā)現(xiàn)能力。

Checkstyle插件中默認(rèn)內(nèi)置有2個(gè)執(zhí)行代碼檢查的配置文件(Sun Checks 和 Sun Checks),但是這兩個(gè)文件檢查的非常詳細(xì)嚴(yán)格,即使優(yōu)秀的開(kāi)源項(xiàng)目也會(huì)檢查出來(lái)有非常多的錯(cuò)誤告信息,所以需要導(dǎo)入我們自定義的配置文件。

2、安裝步驟:

通過(guò) File Settings Plugins Marketplace 搜索 “CheckStyle”,按照提示進(jìn)行安裝,然后重啟即可。

3、使用說(shuō)明:

可以看到基本都是一些縮進(jìn)啥的編碼規(guī)范,可以不用太關(guān)注

三、PMD1、整體介紹:

PMD側(cè)重面向安全編碼規(guī)則,且具備一定的數(shù)據(jù)流分析和路徑分析能力,能力比CheckStyle稍微強(qiáng)點(diǎn),并且 PMD 支持自定義規(guī)則,PMD可以直接使用的規(guī)則包括以下內(nèi)容:

(1)潛在的bug:空的try/catch/finally/switch語(yǔ)句

(2)未使用的代碼(Dead code):未使用的變量、參數(shù)、私有方法等

(3)可選的代碼:String/StringBuffer的濫用

(4)復(fù)雜的表達(dá)式:不必須的if語(yǔ)句、可被while替代的for循環(huán)

(5)重復(fù)的代碼:拷貝/粘貼代碼意味著拷貝/粘貼bugs

(6)循環(huán)體創(chuàng)建新對(duì)象:盡量不要在循環(huán)體內(nèi)實(shí)例化新對(duì)象

(7)資源關(guān)閉:Connect,Result,Statement等使用之后確保關(guān)閉掉

(1)潛在的bug:空的try/catch/finally/switch語(yǔ)句

(2)未使用的代碼(Dead code):未使用的變量、參數(shù)、私有方法等

(3)可選的代碼:String/StringBuffer的濫用

(4)復(fù)雜的表達(dá)式:不必須的if語(yǔ)句、可被while替代的for循環(huán)

(5)重復(fù)的代碼:拷貝/粘貼代碼意味著拷貝/粘貼bugs

(6)循環(huán)體創(chuàng)建新對(duì)象:盡量不要在循環(huán)體內(nèi)實(shí)例化新對(duì)象

(7)資源關(guān)閉:Connect,Result,Statement等使用之后確保關(guān)閉掉

通過(guò) File Settings Plugins Marketplace 搜索 “PMDPlugin”,按照提示進(jìn)行安裝,然后重啟即可

3、使用說(shuō)明:

參考文章:http://wjhsh.net/andy-songwei-p-11830812.html

參考文章:http://wjhsh.net/andy-songwei-p-11830812.html

java項(xiàng)目文檔怎么寫(xiě)(java項(xiàng)目設(shè)計(jì)文檔)

3.1、運(yùn)行方式:

(1)從Tools菜單中啟動(dòng):

通過(guò) Tools Run PMD 可以看到如下的界面,如果通過(guò)該方式啟動(dòng),掃描的范圍就是整個(gè)項(xiàng)目中的文件了。

Pre Defined:預(yù)定義的規(guī)則,也就是插件自帶的檢測(cè)規(guī)則。后面展開(kāi)的列表中列出了所有的規(guī)則列表,想掃描哪一種類(lèi)型的問(wèn)題,點(diǎn)擊即可。其中“All”表示使用所有的規(guī)則。

Custom Rules:自定義的檢測(cè)規(guī)則,PMD允許用戶(hù)根據(jù)需要自定義檢查規(guī)則,默認(rèn)這里是不可點(diǎn)擊的,需要在設(shè)置中導(dǎo)入自定義規(guī)則文件后方可選擇。

Pre Defined:預(yù)定義的規(guī)則,也就是插件自帶的檢測(cè)規(guī)則。后面展開(kāi)的列表中列出了所有的規(guī)則列表,想掃描哪一種類(lèi)型的問(wèn)題,點(diǎn)擊即可。其中“All”表示使用所有的規(guī)則。

Custom Rules:自定義的檢測(cè)規(guī)則,PMD允許用戶(hù)根據(jù)需要自定義檢查規(guī)則,默認(rèn)這里是不可點(diǎn)擊的,需要在設(shè)置中導(dǎo)入自定義規(guī)則文件后方可選擇。

(2)從右鍵菜單中啟動(dòng):

在文件或者編輯器中點(diǎn)擊右鍵,也可以看到“Run PMD”選項(xiàng),如果通過(guò)該方式啟動(dòng), 檢測(cè)范圍取決于鼠標(biāo)或光標(biāo)當(dāng)前所選中的區(qū)域。

3.2、運(yùn)行結(jié)果:

運(yùn)行后會(huì)出現(xiàn)如上所示的面板,左邊工具欄,鼠標(biāo)停留在上面會(huì)提示其功能;右邊顯示了檢測(cè)結(jié)果,當(dāng)點(diǎn)擊具體某一問(wèn)題項(xiàng)時(shí),會(huì)跳轉(zhuǎn)到對(duì)應(yīng)的源碼中。

3.3、配置檢測(cè)規(guī)則:

通過(guò) File Settings Other Settings PMD 可以打開(kāi)檢測(cè)規(guī)則的設(shè)置界面:

在 “RuleSets(規(guī)則設(shè)置)” 界面可以管理自定義的檢測(cè)規(guī)則。因?yàn)樵趯?shí)際工作中,可能需要根據(jù)實(shí)際情況自定義檢測(cè)規(guī)則,就可以通過(guò)這里導(dǎo)入,如果要使用它,需要在啟動(dòng)PMD進(jìn)行檢測(cè)時(shí)選擇該自定義規(guī)則。

點(diǎn)擊“Options”選項(xiàng)卡,在其中可以配置一些檢測(cè)規(guī)則選項(xiàng):

其中重點(diǎn)需要留意的是“Skip TestSource”這一項(xiàng),因?yàn)樵陧?xiàng)目中有不少Android Studio自動(dòng)生成的測(cè)試代碼,如下所示,選擇上述選項(xiàng)后可以將其過(guò)濾掉。

四、FindBugs1、整體介紹:

FindBugs 側(cè)重于發(fā)現(xiàn)代碼中存在的bug,如運(yùn)行時(shí)錯(cuò)誤檢測(cè)(空指針檢查、未合理關(guān)閉資源、字符串相同判斷錯(cuò)(==,而不是equals)等),它可以簡(jiǎn)單高效全面地幫助我們發(fā)現(xiàn)程序代碼中存在的bug以及潛在隱患,針對(duì)各種問(wèn)題,它提供了簡(jiǎn)單的修改意見(jiàn)供我們參考

2、安裝步驟:

通過(guò) File Settings Plugins Marketplace 搜索 “FindBugs”,按照提示進(jìn)行安裝,然后重啟即可

3、使用說(shuō)明:

FindBugs 可以分析單個(gè)文件、包下面的所有文件、整個(gè)module下的文件、整個(gè)project下的文件,右鍵想要分析的文件名/包名/module名/project

分析完之后就會(huì)出現(xiàn)結(jié)果面板:

點(diǎn)擊對(duì)應(yīng)的item在右邊會(huì)定位到具體的代碼,這是根據(jù)提示進(jìn)行處理修改就行:

五、SonarLint1、整體介紹:

sonar 比 Findbugs 高了一個(gè)層級(jí),它不僅關(guān)注常規(guī)靜態(tài)BUG,還關(guān)注到了如代碼質(zhì)量、包與包、類(lèi)與類(lèi)之間的依賴(lài)情況,代碼耦合情況,類(lèi)、方法、文件的復(fù)雜度,代碼中是否包含大量復(fù)制粘貼的代碼,關(guān)注的是項(xiàng)目代碼整體的健康情況。sonar 有兩種使用方式:插件和客戶(hù)端,sonar 的插件名稱(chēng)為 sonarLint。

2、安裝步驟:

通過(guò) File Settings Plugins Marketplace 搜索 “SonarLint”,按照提示進(jìn)行安裝,然后重啟即可

3、使用說(shuō)明:

右鍵項(xiàng)目或者文件進(jìn)行如上圖所示操作,執(zhí)行之后可以看到如下信息,如果代碼中有不合理的地方會(huì)在report中顯示,同時(shí)點(diǎn)擊錯(cuò)誤的地方在右邊會(huì)給出建議的修改供參考。

4、配置 SonarLint 服務(wù)端:

4.1、配置 Sonar 服務(wù)器:

sonarLint 插件的使用場(chǎng)景是自用自審,但 sonar 也提供了平臺(tái)版本,使用場(chǎng)景則是他審,sonar 平臺(tái)的搭建就不在這篇文章介紹了,感興趣的讀者可以自己上網(wǎng)查看,我們這里主要介紹如何在 sonarLint 插件中配置關(guān)聯(lián) sonar 平臺(tái)服務(wù)器的工程,進(jìn)行本地檢查:

點(diǎn)擊新增按鈕,輸入Configuration Name,配置sonarlint 服務(wù)器的地址,然后下拉框選擇 Login/Password,輸入 sonarlint服務(wù)器的賬號(hào)密碼:

4.2、具體 Sonar工程配置:

配置完服務(wù)器之后,需要針對(duì)具體工程進(jìn)行配置,點(diǎn)擊 connection下拉框,選擇上面配置好的服務(wù)器連接,然后點(diǎn)擊 Search in list,找到對(duì)應(yīng)的工程:

4.3、使用 SonarLint 檢查:

配置完上面兩步之后,接下來(lái)就可以選擇要進(jìn)行檢查的類(lèi)或者目錄進(jìn)行 sonarlint 檢查了(跟第3點(diǎn)的使用方式一致),同時(shí),在 commit 代碼的時(shí)候,勾選 “Perform Sonarlint analysis”,會(huì)針對(duì)你要提交的代碼進(jìn)行sonarlint檢查

總結(jié)

(1)檢查代碼規(guī)范的話(huà),直接使用 Alibaba Java Coding Guidelines 就可以了

(2)找 BUG 的話(huà),使用 PMD、Findbugs、SonarLint 相互補(bǔ)充:

PMD 自定義能力強(qiáng),用來(lái)自定義項(xiàng)目BUG規(guī)則非常好用

Findbugs 找 BUG 能力很強(qiáng),我們拿找到的BUG給新員工培訓(xùn)也很好。

SonarLint 規(guī)則豐富,比 Findbugs 能覆蓋到更全的場(chǎng)景

PMD 自定義能力強(qiáng),用來(lái)自定義項(xiàng)目BUG規(guī)則非常好用

Findbugs 找 BUG 能力很強(qiáng),我們拿找到的BUG給新員工培訓(xùn)也很好。

SonarLint 規(guī)則豐富,比 Findbugs 能覆蓋到更全的場(chǎng)景

END

官方站點(diǎn):www.linuxprobe.com

Linux命令大全:www.linuxcool.com

(新群,火熱加群中……)

掃描二維碼推送至手機(jī)訪問(wèn)。

版權(quán)聲明:本文由飛速云SEO網(wǎng)絡(luò)優(yōu)化推廣發(fā)布,如需轉(zhuǎn)載請(qǐng)注明出處。

本文鏈接:http://www.landcheck.net/post/49960.html

“java項(xiàng)目文檔怎么寫(xiě)(java項(xiàng)目設(shè)計(jì)文檔)” 的相關(guān)文章

關(guān)于ios系統(tǒng)軟件開(kāi)發(fā)的信息

關(guān)于ios系統(tǒng)軟件開(kāi)發(fā)的信息

今天給各位分享ios系統(tǒng)軟件開(kāi)發(fā)的知識(shí),其中也會(huì)對(duì)進(jìn)行解釋?zhuān)绻芘銮山鉀Q你現(xiàn)在面臨的問(wèn)題,別忘了關(guān)注本站,現(xiàn)在開(kāi)始吧!本文目錄一覽: 1、如何制作app軟件? 2、開(kāi)發(fā)ios軟件需要什么 3、iOS開(kāi)發(fā)到底是個(gè)什么工作 4、ios端的手機(jī)app開(kāi)發(fā)要怎么做? 5、ios開(kāi)發(fā)用什么語(yǔ)...

軟件開(kāi)發(fā)機(jī)構(gòu)(軟件開(kāi)發(fā)機(jī)構(gòu)有哪些)

軟件開(kāi)發(fā)機(jī)構(gòu)(軟件開(kāi)發(fā)機(jī)構(gòu)有哪些)

本篇文章給大家談?wù)勡浖_(kāi)發(fā)機(jī)構(gòu),以及軟件開(kāi)發(fā)機(jī)構(gòu)有哪些對(duì)應(yīng)的知識(shí)點(diǎn),希望對(duì)各位有所幫助,不要忘了收藏本站喔。 本文目錄一覽: 1、全國(guó)排名前十的軟件開(kāi)發(fā)培訓(xùn)機(jī)構(gòu)有哪些? 2、國(guó)內(nèi)最好的軟件開(kāi)發(fā)培訓(xùn)機(jī)構(gòu)有哪些? 3、軟件開(kāi)發(fā)公司有哪些? 4、軟件開(kāi)發(fā)培訓(xùn)機(jī)構(gòu)有哪些??? 全國(guó)排名前十的軟...

軟件開(kāi)發(fā)項(xiàng)目管理流程(軟件開(kāi)發(fā)過(guò)程與項(xiàng)目管理)

軟件開(kāi)發(fā)項(xiàng)目管理流程(軟件開(kāi)發(fā)過(guò)程與項(xiàng)目管理)

本篇文章給大家談?wù)勡浖_(kāi)發(fā)項(xiàng)目管理流程,以及軟件開(kāi)發(fā)過(guò)程與項(xiàng)目管理對(duì)應(yīng)的知識(shí)點(diǎn),希望對(duì)各位有所幫助,不要忘了收藏本站喔。 本文目錄一覽: 1、企業(yè)軟件開(kāi)發(fā)流程是什么 2、軟件項(xiàng)目的管理流程 3、軟件開(kāi)發(fā)的基本流程包括哪些 4、軟件開(kāi)發(fā)過(guò)程一般有幾個(gè)階段 5、軟件項(xiàng)目管理流程是什么?...

第三方交易平臺(tái)有哪些主要責(zé)任和義務(wù)(關(guān)于第三方交易平臺(tái)的管理規(guī)定)

第三方交易平臺(tái)有哪些主要責(zé)任和義務(wù)(關(guān)于第三方交易平臺(tái)的管理規(guī)定)

本篇文章給大家談?wù)劦谌浇灰灼脚_(tái)有哪些主要責(zé)任和義務(wù),以及關(guān)于第三方交易平臺(tái)的管理規(guī)定對(duì)應(yīng)的知識(shí)點(diǎn),希望對(duì)各位有所幫助,不要忘了收藏本站喔。 本文目錄一覽: 1、第三方在線支付平臺(tái)有哪些 2、第三方責(zé)任有哪些 3、第三方支付平臺(tái)的主要業(yè)務(wù)分別是做什么的? 4、目前我國(guó)的第三方支付平臺(tái)有哪...

怎么刪除home下的目錄(誤刪home目錄)

怎么刪除home下的目錄(誤刪home目錄)

今天給各位分享怎么刪除home下的目錄的知識(shí),其中也會(huì)對(duì)誤刪home目錄進(jìn)行解釋?zhuān)绻芘銮山鉀Q你現(xiàn)在面臨的問(wèn)題,別忘了關(guān)注本站,現(xiàn)在開(kāi)始吧!本文目錄一覽: 1、執(zhí)行home命令可以刪除目錄嗎 2、如何刪除紅帽Linux的/home下的文件 3、/home 目錄下的文件如下圖所示,請(qǐng)問(wèn)如要要...

裝修工程報(bào)價(jià)表(工程裝修報(bào)價(jià)明細(xì)表)

裝修工程報(bào)價(jià)表(工程裝修報(bào)價(jià)明細(xì)表)

今天給各位分享裝修工程報(bào)價(jià)表的知識(shí),其中也會(huì)對(duì)工程裝修報(bào)價(jià)明細(xì)表進(jìn)行解釋?zhuān)绻芘銮山鉀Q你現(xiàn)在面臨的問(wèn)題,別忘了關(guān)注本站,現(xiàn)在開(kāi)始吧!本文目錄一覽: 1、裝修工程報(bào)價(jià)單范本哪位有?都包括了哪些項(xiàng)目呢? 2、裝修公司工程明細(xì)報(bào)價(jià)表出錢(qián)嗎 3、裝修報(bào)價(jià)中常見(jiàn)的幾個(gè)坑 你遇到幾個(gè) 4、新手必看...