JavaBugChecker1.0(Java原始碼檢錯工具)

來源:互聯網
上載者:User

原始碼(Java工程)下載:http://code.google.com/p/java-parser-executor/downloads/list(deprecated!)

 本文章已淘汰,不推薦閱讀。

很多小病交織在一起就成了大病。——代碼也會生病。

 

日常編碼中會出現很多的簡單錯誤,我嘗試儘可能地對這些錯誤進行自動化檢測(程式員不應該是體力勞動者)。
Java原始碼檢錯的應用範圍:
 1. 排除代碼在邏輯上的錯誤。
  比如:使用尚未與數組產生“關係”的變數做為數組的成員下標, 這是一類常見的代碼錄入錯誤。
  代碼在“流程邏輯”上的不合理之處是常見的。
 2. 原始碼注釋的規範性檢查。
 3. 原始碼的規範性檢查。
  a. 流程語句必需有block. 如:for(..) a=2; 就沒有block.
  b. 禁止不必要的永真假值入口. 如:if(true)...
  c. 儘可能降低類屬性和方法的可訪問性。如:將public變為非public。
  d. 去除冗餘的方法或代碼。實踐中,很多方法經嘗試性建立後卻最終未被使用。局部的代碼塊也是如此。
  e. 禁止魔法數字。
  f.  其它。
 4. 原始碼與相關資源的關係檢查。
   如:Hibernate設定檔中的內容同原始碼是有著映射關係的。我們可以嘗試著去定義、去檢測這樣的關係。

 5. 此外,原始碼檢錯對其它的語言編程、對指令碼、SQL的檢錯都有著借鑒意義。

  
常見的代碼錯誤:

 1. 變數名衝突
   比如:int age, weight; ...; age=weight; 
   體重也能賦值給年齡,顯然不對。
 2. 未用值被覆蓋
   如代碼“int a=2; b=c; a=b;” 中,數字2未被使用。
 3. 非法值
   比如:String file="c:/film/a.txt"; new File(file); 這個File顯然不存在。
 4. 變數關係異常。
   比如:使用尚未與數組產生“關係”的變數做為數組的成員下標。
 5. 孤立的代碼塊。
   某些代碼對運行時系統不產生任何影響,其實這是一種常的錯誤。
 6. 正則異常。
   如:string.replaceAll(“abc”,”def”); 顯然應該最佳化成string.replace(“abc”,”def”);
       某些靜態、簡單的錯誤模式可嘗試使用正則式來描述。
 7. 邏輯異常。
   如:if(a>b){..}else if(a<b){..}elseif(a==b){..}else{出現邏輯冗餘}
   冗餘的、不合理的、永真假的程式流程是應當被最佳化的。數理邏輯的自動最佳化在理論上是比較成熟的(未經證實)。
 8. 其它異常。
   泛型異常等等。

 

 

  運行步驟:
   1. Import  this project in eclipse IDE, with JRE "1.6.0_10" or above.

   2. Properly set the value of 'PROJECT_ROOT' in file:
       /JavaBugChecker1.0.0/srcs/sample/demo/configOfBugChecker.txt

   3. Run TestCase: "/JavaBugChecker1.0.0/srcs/sample/demo/BasicBugCheckerTestCase.java".
       Bug list will print to the console.

   4. Click the hyperlink in the print list, it brings you to the bug location.

  2010-3-25

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.