亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > 綜合 > 正文

讓開發自動化 用 Eclipse 插件提高代碼質量

2024-07-21 01:22:47
字體:
來源:轉載
供稿:網友
在 讓開發自動化 的本期文章中,自動化專家 Paul Duvall 將帶來一些關于 Eclipse 插件的例子,您可以安裝、配置和使用這些靜態分析插件,以便在開發生命周期的早期預防問題。

開發軟件時,我的主要目標之一是:要么防止將缺陷引入代碼庫,要么限制缺陷的生存期;換言之,要盡早找到缺陷。很顯然,越是了解如何編寫更好的代碼以及如何有效測試軟件,就越能及早地捕捉到缺陷。我也很想要一張能發現潛在缺陷的安全之網。

在本系列 八月份 的那期文章中,我得出了這樣的結論:將檢驗工具集成到構建過程(例如,使用 Ant 或 Maven)中,能夠建立起一種尋找潛在缺陷的方法。盡管這種方法使一致性成為可能并超越了 IDE,但它也有一點反作用。必須在本地構建軟件或等待 Continuous Integration 構建的運行。如果使用 Eclipse 插件,就可以在通過 Continuous Integration 構建或集成前 發現一些這樣的沖突。這就促成了我稱為漸進編程 的編程方式,在這種方式下,允許在編碼過程中進行一定程度的質量檢驗 ―― 再也不能比這個更早了!

本文涵蓋了我所認為的 “五大” 代碼分析領域:

  • 編碼標準
  • 代碼重復
  • 代碼覆蓋率
  • 依賴項分析
  • 復雜度監控

可以用接下來的幾個靈活的 Eclipse 插件來揭示這些分析領域:

  • CheckStyle:用于編碼標準
  • PMD 的 CPD:幫助發現代碼重復
  • Coverlipse:測量代碼覆蓋率
  • JDepend:提供依賴項分析
  • Eclipse Metric 插件:有效地查出復雜度

Eclipse 不是您的構建系統
使用 Eclipse 插件與您將這些檢驗工具用于構建過程并不矛盾。事實上,您想要確保的是:下列使用 Eclipse 插件的規則就是應用到構建過程中的規則。

安裝 Eclipse 插件

安裝 Eclipse 插件再簡單不過了,只需要幾個步驟。在開始之前,最好把該插件下載站點的 URL 準備好。表 1 是本文用到的插件的列表:


表 1. 代碼改進插件和相應的下載站點 URL

工具目的Eclipse 插件的 URL
CheckStyle編碼標準分析http://eclipse-cs.sourceforge.net/update/
Coverlipse測試代碼覆蓋率http://coverlipse.sf.net/update
CPD復制/粘貼檢驗http://pmd.sourceforge.net/eclipse/
JDepend包依賴項分析http://andrei.gmxhome.de/eclipse/
Metrics復雜度監控http://metrics.sourceforge.net/update

知道了這些有用插件的下載地址后,安裝插件就是一個極簡單的過程。啟動 Eclipse,然后遵循下列步驟:

  1. 選擇 Help | Software Updates | Find and Install,如圖 1 所示:



    圖 1. 尋找并安裝 Eclipse 插件
    尋找并安裝 Eclipse 插件


  2. 選擇 Search for new features to install 單選按鈕,單擊 Next。
  3. 單擊 New Remote Site,輸入要安裝的插件名和 URL(參見圖 2),單擊 OK,然后單擊 Finish 來顯示 Eclipse 更新管理器。



    圖 2. 配置新的遠程站點
    配置新的遠程站點


  4. 在 Eclipse 更新管理器中,有一個查看插件各方面特性的選項。我通常選擇頂級項,如圖 3 所示。選擇您需要的選項并單擊 Finish。Eclipse 現在安裝該插件。您需要重啟 Eclipse 實例。



    圖 3. 安裝 Eclipse 插件
    安裝 Eclipse 插件

請遵循上述這些步驟來安裝其他的 Eclipse 插件;只需改變插件名和相應的下載位置即可。





回頁首

用 CheckStyle 校正標準

代碼庫的可維護性直接影響著軟件的整個成本。另外,不佳的可維護性還會讓開發人員十分頭痛(進而導致開發人員的缺乏)―― 代碼越容易修改,就越容易添加新的產品特性。像 CheckStyle 這樣的工具可以協助尋找那些可影響到可維護性、與編碼標準相沖突的地方,比方說,過大的類、太長的方法和未使用的變量等等。

有關 PMD
另一個叫做 PMD 的開源工具提供的功能和 CheckStyle 類似。我偏愛 CheckStyle,但 PMD 也有很多執著的追隨者,所以我建議您了解一下這個工具,畢竟它也頗受一些人的青睞。

使用 Eclipse 的 CheckStyle 插件的好處是能夠在編碼過程中了解到源代碼上下文的各種編碼沖突,讓開發人員更可能在簽入該代碼前真正處理好這些沖突。您也幾乎可以把 CheckStyle 插件視作一個連續的代碼復查工具!

安裝 CheckStyle 插件并做如下配置(參見圖 4):

  1. 選擇 Project,然后選擇 Eclipse 菜單中的 Properties 菜單項。
  2. 選擇 CheckStyle active for this project 復選框,單擊 OK。



    圖 4. 在 Eclipse 中配置 CheckStyle 插件
    在 Eclipse 中配置 CheckStyle 插件

Eclipse 重新構建工作空間,并在 Eclipse 控制臺中列示已發現的編碼沖突,如圖 5 所示:


圖 5. Eclipse 中 CheckStyle 的代碼沖突列表
Eclipse 中 CheckStyle 的代碼沖突列表

使用 CheckStyle 插件在 Eclipse 內嵌入編碼標準檢驗是一種很棒的方法,用這種方法可以在編碼時 積極地改進代碼,從而在開發周期的早期發現源代碼中潛在的缺陷。這么做還有更多的好處,如節省時間、減少失敗,也因此會減少項目的成本。沒錯,這就是一種積極主動的方式!





回頁首

用 Coverlipse 確認覆蓋率

Coverlipse 是一個用于 Cobertura 的 Eclipse 插件,Cobertura 是一個代碼覆蓋率工具,可以用它來評估具有相應測試的源代碼的比率。Cobertura 也提供一個 Ant 任務和 Maven 插件,但用 Cobertura,您可以在編寫代碼時 評估代碼覆蓋率。您見過這樣的模式嗎?

通過選擇 Eclipse 菜單項 Run 安裝 Coverlipse 插件并將其和 JUnit 關聯起來,該操作會顯示一系列運行配置選項,例如 JUnit、SWT 應用程序和 Java™ 應用程序。右鍵單擊它并選擇 JUnit w/Coverlipse 節點中的 New。在這里,需要確定 JUnit 測試的位置,如圖 6 所示:


圖 6. 配置 Coverlipse 以獲取代碼覆蓋率
配置 Coverlipse 以獲取代碼覆蓋率

一旦單擊了 Run,Eclipse 會運行 Coverlipse 并在源代碼(如圖 7 所示)中嵌入標記,該標記顯示了具有相關 JUnit 測試的代碼部分:


圖 7. Coverlipse 生成的具有嵌入類標記的報告
Coverlipse 生成的具有嵌入類標記的報告

正如您所見,使用 Coverlipse Eclipse 插件可以更快地確定代碼覆蓋率。例如,這種實時數據功能有助于在將代碼簽入 CM 系統前 更好地進行測試。這對漸進編程來說意味著什么呢?





回頁首

用 CPD 捕捉代碼重復

Eclipse 的 PMD 插件提供了一項叫做 CPD(或復制粘貼探測器)的功能,用于尋找重復的代碼。為在 Eclipse 中使用這項便利的工具,需要安裝具有 PMD 的 Eclipse 插件,該插件具有 CPD 功能。

為尋找重復的代碼,請用右鍵單擊一個 Eclipse 項目并選擇 PMD | Find Suspect Cut and Paste,如圖 8 所示:


圖 8. 使用 CPD 插件運行復制粘貼檢驗
使用 PMD/CPD 插件運行復制粘貼檢驗

一旦運行了 CPD,您的 Eclipse 根目錄下就會創建出一個 report 文件夾,其中包含一個叫做 cpd.txt 的文件,文件中列示了所有重復的代碼。圖 9 中是一個 cpd.txt 文件的例子:


圖 9. Eclipse 插件生成的 CPD 文本文件
Eclipse 插件生成的 CPD 文本文件

靠人工來尋找重復的代碼是一項挑戰,但使用像 CPD 這樣的插件卻能在編碼時輕松地發現重復的代碼。





回頁首

使用 JDepend 進行依賴項檢查

JDepend 是個可免費獲取的開源工具,它為包依賴項提供面向對象的度量值,以此指明代碼庫的彈性。換句話說,JDepend 可有效測量一個架構的健壯性(反之,脆弱性)。

除了 Eclipse 插件,JDepend 還提供一個 Ant 任務、Maven 插件和一個 Java 應用程序,用以獲取這些度量值。對于相同的信息,它們有著不同的傳遞機制;但 Eclipse 插件的特別之處和相應優點是:它能以更接近源代碼(即,編碼時)的方式傳遞這條信息。

圖 10 演示了使用 Eclipse JDepend 插件的方法:通過右鍵單擊源文件夾并選擇 Run JDepend Analysis。一定要選擇一個含源代碼的源文件夾;否則看不到此菜單項。


圖 10. 使用 JDepend Analysis 分析代碼
使用 JDepend Analysis 分析代碼

圖 11 顯示了運行 JDepend Analysis 時生成的報告。左邊顯示包,右邊顯示針對每個包的依賴項度量值。


圖 11. Eclipse 項目中的包依賴項
Eclipse 項目中的包依賴項

正如您所見,JDepend 插件提供了有助于不斷觀察架構可維護性變化的大量信息 ―― 這其中最大的好處是您可以在編碼時看到這些數據。





回頁首

用 Metrics 測量復雜度

“五大”代碼分析最后的一項是測量復雜度。Eclipse 提供一種叫做 Metrics 的插件,使用該插件可以進行許多有用的代碼度量,包括圈復雜度度量,它用于測量方法中惟一路徑的數目。

安裝 Metrics 插件并重啟 Eclipse;然后遵循下列步驟:

  1. 右鍵單擊您的項目并選擇 Properties 菜單。在結果窗口中,選擇 Enable Metrics plugin 復選框并單擊 OK,如圖 12 所示:



    圖 12. 為項目配置 Metrics
    為項目配置 Metrics


  2. 從 Eclipse 中選擇 Window 菜單打開 Metrics 視圖,然后選擇 Show View | Other...。
  3. 選擇 Metrics | Metrics View 打開如圖 13 中顯示的窗口。您需要使用 Java 透視圖并重新構建項目,從而顯示這些度量值。



    圖 13. 打開 Eclipse 中的 Metrics View
    打開 Eclipse 中的 Metrics View


  4. 單擊 OK 來顯示如圖 14 中的窗口。

    在此例中,我正在查看一個單獨方法的圈復雜度。真正妙的是您可以雙擊 Metrics 列表中的方法,該插件會在 Eclipse 編輯器中為此方法打開源代碼。這就讓修正變得超級簡單(如果需要的話)!



    圖 14. 查看方法的圈復雜度
    查看方法的圈復雜度

正如我之前提到過的,Eclipse Metrics 插件還提供了許多功能強大的度量值,有助于您在開發軟件的過程中改進代碼 ―― 可見,它是一個漸進編程意義上的插件!





回頁首

合適的才是最好的

正如您從本文中看到的那樣,將“五大”測量方法,即編碼標準、代碼重復、代碼覆蓋率、依賴項分析和復雜度監控,用于改進代碼質量十分重要。但適合您的才是好的。請記住還有其他許多可用的 Eclipse 插件(比如 PMD 和 FindBugs)能夠幫助您在開發周期的早期改進代碼質量。不管您想要的工具或偏愛的方法是什么,重要的是:行動起來去積極改進代碼質量并讓手工代碼檢驗的過程變得更加有效。我估計您使用這些插件一段時間后,就再也離不開它們了。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
在线看欧美日韩| 亚洲人成网站在线播| 国内免费精品永久在线视频| 久久久久久久999| 欧美在线免费观看| 日本精品视频在线播放| 欧美野外wwwxxx| 亚洲精品wwww| 日韩一区二区三区国产| 免费99精品国产自在在线| 亚洲欧美激情四射在线日| 91美女片黄在线观| 精品亚洲夜色av98在线观看| 91av视频在线播放| 国产精品高潮呻吟视频| 亚洲一区二区三区视频播放| 色偷偷9999www| 精品视频在线播放色网色视频| 国产精品久久色| 欧美风情在线观看| 欧美日韩精品在线| 国产成人精品视频在线观看| 欧美激情xxxx性bbbb| 国产不卡一区二区在线播放| 91久久久精品| 欧美日韩一区二区三区在线免费观看| 亚洲成人a级网| 国产精品网红直播| 永久免费看mv网站入口亚洲| 国产精品天天狠天天看| 中文字幕日韩欧美| 国产97在线亚洲| 亚洲精品白浆高清久久久久久| 美日韩在线视频| 国产精品海角社区在线观看| 欧美成在线视频| 久久久久久欧美| 日韩视频第一页| 国产精品一区二区三区免费视频| 日韩精品免费在线| 亚洲二区在线播放视频| 国产亚洲精品一区二555| 92福利视频午夜1000合集在线观看| 在线观看欧美www| 欧美在线视频网站| 欧美激情亚洲国产| www.xxxx精品| 秋霞av国产精品一区| 亚洲激情视频在线| 亚洲美女久久久| 精品久久久久久国产91| 国产精品亚洲综合天堂夜夜| 中文在线资源观看视频网站免费不卡| www.亚洲一二| 欧美xxxwww| 色偷偷av亚洲男人的天堂| 日韩av电影在线免费播放| 国产一区二区三区在线观看网站| 992tv成人免费视频| 欧美日韩ab片| 亚洲国产另类久久精品| 欧美日韩在线观看视频小说| 成人h视频在线观看播放| 欧美床上激情在线观看| 国产精品十八以下禁看| 亚洲自拍另类欧美丝袜| 色视频www在线播放国产成人| 欧美激情一二三| 国产精品亚洲激情| 欧美一区二区三区图| 亚洲一区二区福利| 久热精品视频在线免费观看| 综合136福利视频在线| 懂色aⅴ精品一区二区三区蜜月| 欧美丰满片xxx777| 黑人巨大精品欧美一区二区| 欧美精品在线播放| 8x拔播拔播x8国产精品| 狠狠躁天天躁日日躁欧美| 日韩av网站大全| 日韩最新中文字幕电影免费看| 国产成人精品午夜| 欧美一区二区三区免费观看| 亚洲女人天堂av| 亚洲成在人线av| 欧美性猛交xxxx乱大交| 久久精品人人做人人爽| 亚洲天堂色网站| 日本欧美黄网站| 欧美激情精品久久久久久大尺度| 91精品国产91久久久久| 91精品国产自产在线观看永久| 欧美综合一区第一页| 日韩高清人体午夜| 欧美激情精品久久久久| 羞羞色国产精品| 欧美成人中文字幕在线| 91亚洲精品久久久久久久久久久久| 在线视频日韩精品| 中文综合在线观看| 亚洲午夜久久久久久久| 国产91精品青草社区| 欧美丰满少妇xxxxx| 日韩美女写真福利在线观看| 国产在线久久久| 国产在线视频欧美| 久久久精品一区| 日本亚洲精品在线观看| 好吊成人免视频| 亚洲 日韩 国产第一| 亚洲天堂日韩电影| 美女扒开尿口让男人操亚洲视频网站| 亚洲精品电影在线观看| 成人精品视频在线| 国产精品爱久久久久久久| 在线精品视频视频中文字幕| 亚洲男人天堂手机在线| 国产精自产拍久久久久久蜜| 欧美做受高潮1| 国产第一区电影| 国产美女直播视频一区| 久久精品91久久久久久再现| 国产精品美女www爽爽爽视频| 九九热这里只有在线精品视| 91精品国产高清久久久久久| 国产精品成人va在线观看| 久久免费福利视频| 精品久久久久久久久久久久久| 成人免费大片黄在线播放| 91亚洲国产成人精品性色| 中文字幕日韩综合av| 中文字幕在线观看日韩| 永久免费毛片在线播放不卡| 高清日韩电视剧大全免费播放在线观看| 免费91麻豆精品国产自产在线观看| 一道本无吗dⅴd在线播放一区| 久久久久久久久久久久av| 欧美精品18videos性欧| 日本精品性网站在线观看| 欧美性猛交视频| 91国产在线精品| 久久精品欧美视频| 69久久夜色精品国产69| 高清欧美性猛交xxxx黑人猛交| 欧美日韩国产在线播放| 国产精品激情av在线播放| 国产精品视频不卡| 欧美最猛性xxxxx亚洲精品| 精品亚洲国产视频| 亚洲视频在线免费看| 日本一区二三区好的精华液| 久久精品视频导航| 成人亚洲综合色就1024| 日韩国产激情在线| 91在线视频九色| 97香蕉久久超级碰碰高清版| 精品国产福利在线| 国产福利成人在线| 亚洲欧美视频在线| 亚洲美女激情视频| 日韩在线激情视频| 精品久久久久久久久久久| 九九久久久久99精品| 97精品国产97久久久久久春色|