国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

輕松有效檢查Java代碼的三個(gè)工具

2019-11-18 12:10:27
字體:
供稿:網(wǎng)友

  java項(xiàng)目最枯燥的一部分,也是程序員總是避而不談的一部分,就是檢查代碼。為了區(qū)塊括號(hào)、代碼縮進(jìn)、Javadoc注釋以及命名約定而檢查其他人的上千行代碼的確是一件痛苦的事。更糟糕的是,通常代碼的檢查還受限于緊迫的項(xiàng)目進(jìn)度。沒有足夠的時(shí)間對(duì)代碼的細(xì)節(jié)進(jìn)行評(píng)估,因此代碼檢查經(jīng)常變成了對(duì)代碼的美化練習(xí)。不管檢查者有多么好的意圖,優(yōu)化和邏輯檢查都退居次席。
  
  Java代碼分析器減輕了這樣的痛苦
  
  
  在面對(duì)這種情況的時(shí)候,Java代碼分析器正是對(duì)癥良藥。這些工具盡可能地將代碼檢查過程自動(dòng)化。留給人工來做的就只有檢查類的缺陷以及核心邏輯并確定可能的優(yōu)化方法。優(yōu)化(去除不必要的實(shí)例化對(duì)象、檢查數(shù)據(jù)庫連接是否合理、確保數(shù)據(jù)在可能的情況下被緩存)對(duì)于任何代碼通常會(huì)帶來性能上的極大改進(jìn)。
  
  最近我接觸了各種代碼分析器。我覺得一個(gè)基本的最重要的功能是與常用IDE(如NetBeans、Eclipse、jEdit以及JDeveloper)的集成。有一些代碼檢查工具在查找錯(cuò)誤方面很有效,但是它們需要你根據(jù)給出的錯(cuò)誤行的行號(hào)手工來追蹤錯(cuò)誤。這樣的工具使用起來太累人了。與IDE環(huán)境集成了的工具可以大大簡化這個(gè)過程,因?yàn)榇a檢查的結(jié)果是由所使用的IDE顯示的。你只需在錯(cuò)誤上雙擊就可以在Java編輯器中到達(dá)錯(cuò)誤代碼所在的行
  
  我的試專心得
  在我試用過的工具中,我發(fā)現(xiàn)其中三個(gè)工具十分強(qiáng)大并合乎與IDE集成的標(biāo)準(zhǔn),它們是: PMD 、 Checkstyle 和 Jalopy 。
  
  PMD和Checkstyle
  
  根據(jù)PMD的文檔,它會(huì)對(duì)代碼中的如下部分進(jìn)行檢查:
  
   未使用的本地變量
   空的catch塊
   未使用參數(shù)
   空if語句
   重復(fù)的import語句
   未使用的私有方法
   可能是Singletons的類
   短/長變量及方法名字
  Checkstyle檢查如下部分:
  
   Javadoc注釋
   命名約定
   標(biāo)題
   Import語句
   體積大小
   空白
   修飾符
   塊
   混合檢查(包活一些有用的比如非必須的System.out和PRintstackTrace)
  它們的作用
  
  
  不像PMD,Checkstyle能夠檢查Javadoc注釋;但是PMD提供了一項(xiàng)叫作CPD的很有用的功能,它檢查代碼的拷貝粘貼部分。我使用PMD找到的最頻繁的錯(cuò)誤是未使用的import語句,未使用的私有變量以及意外重復(fù)拼寫。Checkstyle可以發(fā)現(xiàn)更多的錯(cuò)誤。包括漏掉的Javadoc注釋,超過80個(gè)字符的行、不合約定的變量名、用tab來代替空格等等。兩個(gè)工具都答應(yīng)創(chuàng)建自定義的規(guī)則。
  
  假如想在你的組織中使用它們中的一個(gè),Checkstyle似乎更好一些:它檢查公司編碼約定的大多數(shù)項(xiàng)目。假如增強(qiáng)代碼質(zhì)量是主要目標(biāo),那PMD是一個(gè)好的選擇。但是假如你想要更多的功能并真正使用工具來修改代碼,應(yīng)該試試Jalopy。
  
  Jalopy
  Jalopy是一個(gè)易于配置的源代碼格式程序,它能檢測并修補(bǔ)Java代碼中大量的習(xí)慣性缺陷。Jalopy更像一個(gè)代碼整理器而不是檢查器。Jalopy的插件現(xiàn)在已經(jīng)支持大多數(shù)IDE,而且多數(shù)是無縫集成。我發(fā)現(xiàn)Jalopy非凡強(qiáng)大,能夠干許多很酷的事情。例如,它可以修改代碼縮進(jìn)、對(duì)齊括號(hào)、使行寬符合某個(gè)字符長度、插入相關(guān)的Javadoc注釋以及對(duì)import語句排序。Jalopy最好的地方是超級(jí)自定義功能。一個(gè)簡單的用戶界面就可以讓你選擇Jalopy的所有功能的開關(guān),不需要xml配置文件。
  
  不要浪費(fèi)資源
  我建議大家使用這些工具來代替那些費(fèi)時(shí)費(fèi)力卻收效甚微的人工代碼檢查工作。一旦使用這些工具將代碼檢查變成了一個(gè)相對(duì)輕松的任務(wù),你就可以把代碼檢查作為一項(xiàng)普通工作而不是在項(xiàng)目結(jié)尾被進(jìn)度逼得一團(tuán)糟時(shí)做的事情。這些工具也提供了與Apache Ant的集成,因此你可以天天運(yùn)行這些代碼檢查器,在編譯或執(zhí)行單元測試它們也能工作得很好。控制好你的代碼,并交付那些你真的認(rèn)為是高質(zhì)量的東西。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 敦煌市| 平遥县| 堆龙德庆县| 虎林市| 石阡县| 县级市| 朝阳县| 信阳市| 沾益县| 黄山市| 汶川县| 玛纳斯县| 江陵县| 隆尧县| 交口县| 惠安县| 镇巴县| 海兴县| 湘阴县| 祁阳县| 阳曲县| 共和县| 邹平县| 神农架林区| 阳西县| 临沂市| 古浪县| 扎鲁特旗| 屯门区| 兴义市| 乌审旗| 鄂温| 青冈县| 吉隆县| 侯马市| 榕江县| 横峰县| 青海省| 洪雅县| 株洲县| 平湖市|