1. 程式人生 > >用 Eclipse 外掛提高程式碼質量

用 Eclipse 外掛提高程式碼質量

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

在本系列 八月份 的那期文章中,我得出了這樣的結論:將檢驗工具整合到構建過程(例如,使用 Ant 或 Maven)中,能夠建立起一種尋找潛在缺陷的方法。儘管這種方法使一致性成為可能並超越了 IDE,但它也有一點反作用。必須在本地構建軟體或等待 Continuous Integration 構建的執行。如果使用 Eclipse 外掛,就可以在通過 Continuous Integration 構建或整合

發現一些這樣的衝突。這就促成了我稱為漸進程式設計 的程式設計方式,在這種方式下,允許在編碼過程中進行一定程度的質量檢驗 —— 再也不能比這個更早了!

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

  • 編碼標準
  • 程式碼重複
  • 程式碼覆蓋率
  • 依賴項分析
  • 複雜度監控

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

  • CheckStyle:用於編碼標準
  • PMD 的 CPD:幫助發現程式碼重複
  • Coverlipse:測量程式碼覆蓋率
  • JDepend:提供依賴項分析
  • Eclipse Metric 外掛:有效地查出複雜度

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

工具 目的 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 所示:

2, 選擇 Search for new features to install 單選按鈕,單擊 Next

3,單擊 New Remote Site,輸入要安裝的外掛名和 URL(參見圖 2),單擊 OK,然後單擊 Finish 來顯示 Eclipse 更新管理器。

配置新的遠端站點

4,在 Eclipse 更新管理器中,有一個檢視外掛各方面特性的選項。我通常選擇頂級項,如圖 3 所示。選擇您需要的選項並單擊 Finish。Eclipse 現在安裝該外掛。您需要重啟 Eclipse 例項。

安裝 Eclipse 外掛


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

------------------------------------------------------------------------------------------------------------------------------------------------------------

用 CheckStyle 校正標準

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

使用 Eclipse 的 CheckStyle 外掛的好處是能夠在編碼過程中瞭解到原始碼上下文的各種編碼衝突,讓開發人員更可能在簽入該程式碼前真正處理好這些衝突。您也幾乎可以把 CheckStyle 外掛視作一個連續的程式碼複查工具!

安裝 CheckStyle 外掛並做如下配置(參見圖 4):

  1. 選擇 Project,然後選擇 Eclipse 選單中的 Properties 選單項。

  2. 選擇 CheckStyle active for this project 複選框,單擊 OK
    在 Eclipse 中配置 CheckStyle 外掛

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

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 測試的位置,如圖

一旦單擊了 Run,Eclipse 會執行 Coverlipse 並在原始碼(如圖 7 所示)中嵌入標記,該標記顯示了具有相關 JUnit 測試的程式碼部分:

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

正如您所見,使用 Coverlipse Eclipse 外掛可以更快地確定程式碼覆蓋率。例如,這種實時資料功能有助於在將程式碼簽入 CM 系統 更好地進行測試。這對漸進程式設計來說意味著什麼呢?

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

用CPD 捕捉程式碼重複

Eclipse 的 PMD 外掛提供了一項叫做 CPD(或複製貼上探測器)的功能,用於尋找重複的程式碼。為在 Eclipse 中使用這項便利的工具,需要安裝具有 PMD 的 Eclipse 外掛,該外掛具有 CPD 功能。

為尋找重複的程式碼,請用右鍵單擊一個 Eclipse 專案並選擇 PMD | Find Suspect Cut and Paste,如圖

使用 CPD 外掛運行復制貼上檢驗

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

Eclipse 外掛生成的 CPD 文字檔案

靠人工來尋找重複的程式碼是一項挑戰,但使用像 CPD 這樣的外掛卻能在編碼時輕鬆地發現重複的程式碼。

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

使用JDepend 進行依賴項檢查

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

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

圖 10 演示了使用 Eclipse JDepend 外掛的方法:通過右鍵單擊原始檔夾並選擇 Run JDepend Analysis。一定要選擇一個含原始碼的原始檔夾;否則看不到此選單項。

使用 JDepend Analysis 分析程式碼

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

圖 11. Eclipse 專案中的包依賴項

正如您所見,JDepend 外掛提供了有助於不斷觀察架構可維護性變化的大量資訊 —— 這其中最大的好處是您可以在編碼時看到這些資料。

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

用 Metrics 測量複雜度

“五大”程式碼分析最後的一項是測量複雜度。Eclipse 提供一種叫做 Metrics 的外掛,使用該外掛可以進行許多有用的程式碼度量,包括圈複雜度度量,它用於測量方法中惟一路徑的數目。

安裝 Metrics 外掛並重啟 Eclipse;然後遵循下列步驟:

  1. 右鍵單擊您的專案並選擇 Properties 選單。在結果視窗中,選擇 Enable Metrics plugin 複選框並單擊OK,如圖 12 所示:

圖 12. 為專案配置 Metrics

2 從 Eclipse 中選擇 Window 選單開啟 Metrics 檢視,然後選擇 Show View | Other...

3 選擇 Metrics | Metrics View 開啟如圖 13 中顯示的視窗。您需要使用 Java 透檢視並重新構建專案,從而顯示這些度量值。

圖 13. 開啟 Eclipse 中的 Metrics View

單擊 OK 來顯示如圖 14 中的視窗。

在此例中,我正在檢視一個單獨方法的圈複雜度。真正妙的是您可以雙擊 Metrics 列表中的方法,該外掛會在 Eclipse 編輯器中為此方法開啟原始碼。這就讓修正變得超級簡單(如果需要的話)!

圖 14. 檢視方法的圈複雜度

正如我之前提到過的,Eclipse Metrics 外掛還提供了許多功能強大的度量值,有助於您在開發軟體的過程中改進程式碼 —— 可見,它是一個漸進程式設計意義上的外掛!

合適的才是最好的

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

相關推薦

Eclipse 外掛提高程式碼質量

開發軟體時,我的主要目標之一是:要麼防止將缺陷引入程式碼庫,要麼限制缺陷的生存期;換言之,要儘早找到缺陷。很顯然,越是瞭解如何編寫更好的程式碼以及如何有效測試軟體,就越能及早地捕捉到缺陷。我也很想要一張能發現潛在缺陷的安全之網。 在本系列 八月份 的那期文章中,我得出了這樣

linux下提高程式碼質量的幾個工具

1、測試程式碼覆蓋率   gcov 2、程式碼靜態測試   splint 3、記憶體洩漏測試    valgrind --tool=memcheck --leak-check=yes ./file 4、效能測試     gpro

不會畫類圖,Eclipse外掛

最近老闆讓我做類圖和時序圖,提苦惱的,完全不會,就從網上整理了些 1.安裝和使用AmaterasUML 安裝AmaterasUML前,需要先安裝GEF 採用eclipse線上安裝方式安裝就好。 eclipse線上安裝GEF的地址:http://downloa

SonarQube與Jenkins結合提高程式碼質量

首先,為什麼需要SonarQube? 1、WriteClean Code 1)全域性健康報告  2)關注新增的問題  3)強制QualityGate 4)Issue詳情及建議… 詳情參考:https://www.sonarqube.org/features/clean-c

Eclipse外掛Git,回滾到之前的版本

關於head和tags。 head:我的理解是指向當前分支最新版本的一個指標。 tags:一個指標,可以指向任意一個版本。但使用回滾功能時,會導致head指標往前移動。導致後面的一些提交丟失(即分支歷史記錄中沒有了)。此時如果在回滾前通過tags記錄了head指標指向的位

idea,配置checkstyle 【提高程式碼質量,檢查程式碼規範的工具 】Checkstyle,FindBugs,PMD,Jtest

idea,配置checkstyle 【提高程式碼質量,檢查程式碼規範的工具 】Checkstyle,FindBugs,PMD,Jtest 2016年12月15日 14:19:02 common_util 閱讀數:18818更多 個人分類: 開發 版權宣告:本文為博主原創文章,可以轉載分

C#中使用try catch和using如何提高程式碼質量

簡介: try catch我們之前說過是處理異常的,其實主要處理異常的是catch,而finally中是釋放資源的,說白了using在C# 中也是讓使用資源的物件釋放資源的,無疑和finally差不多,

程式碼質量管理工具】--使用sonarLint提高程式碼質量

【背景】        專案組,在12月份的時候使用了強大的程式碼質量管理工具--Sonar來檢測規範我們的程式碼,但是當時使用的時候會有一個缺陷,就是我每使用一次maven命令將程式碼掃描到sona

eclipse外掛執行時發生以下錯誤.AccessControlException: Permission denied

hadoop2.6.5版本,用eclipse外掛執行時發生以下錯誤。 可以看出來我的輸出檔案output許可權對於非supergroup沒有寫入的許可權。該如何解決這個問題呢? org.apache.hadoop.security.AccessControlExceptio

axis2外掛生成程式碼時出現java.lang.reflect.InvocationTargetException異常的處理

解決方案:   1.關閉正在執行的myeclipse  在axis2-1.4.1-war\axis2\WEB-INF\lib目錄下,複製backport-util-concurrent-3.1.jar和geronimo-stax-api_1.0_spec-1.0.1.j

提高程式碼質量-----php要提升的

關於php  現在主要糾結在 怎麼寫出  好看的程式碼 如   用面向物件的思想程式設計   用到設計模式   寫高質量的程式碼 提高演算法效率  所以在此轉載一些能改進我的這幾個方面的知識  學習 一下  也希望大俠們 有什麼好的建議  可以提出   注:要自己

提高程式碼質量,從觀念到實踐--Clean Code 培訓總結

程式設計價值觀 之前我總是認為好的程式碼精簡是第一位,這樣才夠“優雅”,我寫20行程式碼的功能,別人10行就能實現就是比我厲害。但在工程的世界,程式設計師寫程式碼不只是給自己看的,還要考慮到後面會有同事要來維護你的程式碼。因此什麼是好程式碼要重新定義:不應該追

提高程式碼質量-工具篇

在這片文章中,我將從工具使用的角度上講述如何提高 Android 程式碼質量,這些自動化工具包括 Checksytle、Findbugs、PMD 和 Android Lint. 團隊中程式碼意識不一致,水平參差不齊,程式碼風格迥異,定下的規範也是熟視無睹。這時候就需要藉助工具的力量,利用工具自動地幫助我

idea,配置checkstyle 【提高程式碼質量,檢查程式碼規範的工具 】Checkstyle

CheckStyle是SourceForge下的一個專案,提供了一個幫助JAVA開發人員遵守某些編碼規範的工具。它能夠自動化程式碼規範檢查過程,從而使得開發人員從這項重要,但是枯燥的任務中解脫出來。 CheckStyle檢驗的主要內容 列表內容 Jav

不知道怎麼提高程式碼質量?來看看這幾種設計模式吧!

## 提高程式碼質量的目的 程式猿的本職工作就是寫程式碼,寫出高質量的程式碼應該是我們的追求和對自己的要求,因為: > 1. 高質量的程式碼往往意味著更少的BUG,更好的模組化,是我們擴充套件性,複用性的基礎 > 2. 高質量的程式碼也意味著更好的書寫,更好的命名,有利於我們的維護 ## 什

eclipse下maven外掛mybatis-generator生成程式碼

眾所眾知,mybatis是半自動的ORM持久化框架,不像hibernate可以全自動根據庫表生產pojo實體類或根據pojo實體類反向生成庫表。 不過我們可以利用maven外掛的mybatis-generator功能生成mybatis的xml對映檔案和資料庫對應的實體類。 下面請看生成程

使用四大外掛提高Android中的程式碼質量

由於之後開發將會使用Android studio進而替代Eclipse作為高效的Android開發工具,所以今天分享一篇關於利用四種外掛 lint、findBugs、PMD、 CheckStyles 的功能和使用方式,以及如何將多個外掛整合在一起的文章”教

Eclipse的常規操作,提高速度與程式碼質量

1、智慧提示: 步驟:Windows→Preferences→Java→Editor→Content Assist 我們看到其中的AutoActivation Delay預設值為200(單位是毫秒)也就是說在打“.”之後停留200毫秒才能出現智慧感知的提示。那麼將它修改

Eclipse外掛:MyBatis Generator程式碼自動生成工具

MyBatis Generator是一款優秀的工具,可以幫助我們自動生成java實體類,mapper介面和xml,極大得簡化了開發流程,今天,就記錄下在eclipse中使用eclipse外掛整合MyBatis Generator的步驟; 【1:外掛安裝】Help--Eclipser Market

如何在eclipse中新增程式碼檢查外掛,實時提示檢查問題,eclipse+sonarLint+sonarqube平臺程式碼檢查規則

在eclipse中引入sonarLint外掛 步驟如下: 1、sonarLint安裝 開啟eclipse後,執行    help->Eclipse Marketplace->查詢sonarLint