當前位置:首頁 » 編程語言 » java代碼檢測工具

java代碼檢測工具

發布時間: 2022-08-08 00:11:54

① 誰知道檢查java代碼規范的用什麼工具比較好

Checkstyle
這個可以自定義規范,如變數的命名規范,方法的命名的規范,一行代碼的字數,一個方法的行數,是否已經加註釋等等

② 做靜態代碼分析都是用那個軟體的

本文首先介紹了靜態代碼分析的基本概念及主要技術,隨後分別介紹了現有 4 種主流 Java 靜態代碼分析工具 (Checkstyle,FindBugs,PMD,Jtest),最後從功能、特性等方面對它們進行分析和比較,希望能夠幫助 Java 軟體開發人員了解靜態代碼分析工具,並選擇合適的工具應用到軟體開發中。


引言

在 Java 軟體開發過程中,開發團隊往往要花費大量的時間和精力發現並修改代碼缺陷。Java 靜態代碼分析(static code analysis)工具能夠在代碼構建過程中幫助開發人員快速、有效的定位代碼缺陷並及時糾正這些問題,從而極大地提高軟體可靠性並節省軟體開發和測試成 本。目前市場上的 Java 靜態代碼分析工具種類繁多且各有千秋,因此本文將分別介紹現有 4 種主流 Java 靜態代碼分析工具 (Checkstyle,FindBugs,PMD,Jtest),並從功能、特性等方面對它們進行分析和比較,希望能夠幫助 Java 軟體開發人員了解靜態代碼分析工具,並選擇合適的工具應用到軟體開發中。

靜態代碼分析工具簡介

什麼是靜態代碼分析

靜態代碼分析是指無需運行被測代碼,僅通過分析或檢查源程序的語法、結構、過程、介面等來檢查程序的正確性,找出代碼隱藏的錯誤和缺陷,如參數不匹配,有歧義的嵌套語句,錯誤的遞歸,非法計算,可能出現的空指針引用等等。

在軟體開發過程中,靜態代碼分析往往先於動態測試之前進行,同時也可以作為制定動態測試用例的參考。統計證明,在整個軟體開發生命周期中,30% 至 70% 的代碼邏輯設計和編碼缺陷是可以通過靜態代碼分析來發現和修復的。

但是,由於靜態代碼分析往往要求大量的時間消耗和相關知識的積累,因此對於軟體開發團隊來說,使用靜態代碼分析工具自動化執行代碼檢查和分析,能夠極大地提高軟體可靠性並節省軟體開發和測試成本。

靜態代碼分析工具的優勢

1. 幫助程序開發人員自動執行靜態代碼分析,快速定位代碼隱藏錯誤和缺陷。

2. 幫助代碼設計人員更專注於分析和解決代碼設計缺陷。

3. 顯著減少在代碼逐行檢查上花費的時間,提高軟體可靠性並節省軟體開發和測試成本。


Java 靜態代碼分析理論基礎和主要技術

  • 缺陷模式匹配:缺陷模式匹配事先從代碼分析經驗中收集足夠多的共性缺陷模式,將待分析代碼與已有的共性缺陷模式進行模式匹配,從而完成軟體的安全分析。這種方式的優點是簡單方便,但是要求內置足夠多缺陷模式,且容易產生誤報。

  • 類型推斷:類型推斷技術是指通過對代碼中運算對象類型進行推理,從而保證代碼中每條語句都針對正確的類型執行。這種技術首先將預定義一套類型機制,包括類 型等價、類型包含等推理規則,而後基於這一規則進行推理計算。類型推斷可以檢查代碼中的類型錯誤,簡單,高效,適合代碼缺陷的快速檢測。

  • 模型檢查:模型檢驗建立於有限狀態自動機的概念基礎之上,這一理論將被分析代碼抽象為一個自動機系統,並且假設該系統是有限狀態的、或者是可以通過抽象歸 結為有限狀態。模型檢驗過程中,首先將被分析代碼中的每條語句產生的影響抽象為一個有限狀態自動機的一個狀態,而後通過分析有限狀態機從而達到代碼分析的 目的。模型檢驗主要適合檢驗程序並發等時序特性,但是對於數據值域數據類型等方面作用較弱。

  • 數據流分析:數據流分析也是一種軟體驗證技術,這種技術通過收集代碼中引用到的變數信息,從而分析變數在程序中的賦值、引用以及傳遞等情況。對數據流進行 分析可以確定變數的定義以及在代碼中被引用的情況,同時還能夠檢查代碼數據流異常,如引用在前賦值在後、只賦值無引用等。數據流分析主要適合檢驗程序中的 數據域特性。

  • 現有主流 Java 靜態分析工具

    Checkstyle

    Checkstyle 是 SourceForge 的開源項目,通過檢查對代碼編碼格式,命名約定,Javadoc,類設計等方面進行代碼規范和風格的檢查,從而有效約束開發人員更好地遵循代碼編寫規范。

    Checkstyle 提供了支持大多數常見 IDE 的插件,文本主要使用 Eclipse 中的 Checkstyle 插件。如下圖 1 所示,Checkstyle 對代碼進行編碼風格檢查,並將檢查結果顯示在 Problems 視圖中。圖中,代碼編輯器中每個放大鏡圖標表示一個 Checkstyle 找到的代碼缺陷。開發人員可通過在 Problems 視圖中查看錯誤或警告詳細信息。


  • 圖 1. 使用 Checkstyle 進行編碼風格檢查


  • 此外,Checkstyle 支持用戶根據需求自定義代碼檢查規范,在下圖 2 中的配置面板中,用戶可以在已有檢查規范如命名約定,Javadoc,塊,類設計等方面的基礎上添加或刪除自定義檢查規范。


  • 圖 2. 使用 Checkstyle 添加自定義代碼檢查規范


  • FindBugs

    FindBugs 是由馬里蘭大學提供的一款開源 Java 靜態代碼分析工具。FindBugs 通過檢查類文件或 JAR 文件,將位元組碼與一組缺陷模式進行對比從而發現代碼缺陷,完成靜態代碼分析。FindBugs 既提供可視化 UI 界面,同時也可以作為 Eclipse 插件使用。文本將主要使用將 FindBugs 作為 Eclipse 插件。在安裝成功後會在 eclipse 中增加 FindBugs perspective,用戶可以對指定 Java 類或 JAR 文件運行 FindBugs,此時 FindBugs 會遍歷指定文件,進行靜態代碼分析,並將代碼分析結果顯示在 FindBugs perspective 的 bugs explorer 中,如下圖 3 所示:


  • 圖 3. 使用 FindBugs 進行靜態代碼分析


  • 圖中 Bug Explorer 中的灰色圖標處為 Bug 類型,每種分類下紅色圖標表示 bug 較為嚴重,黃色的圖標表示 bug 為警告程度。Propreties 列出了 bug 的描述信息及修改方案。

    此外,FindBugs 還為用戶提供定製 Bug Pattern 的功能。用戶可以根據需求自定義 FindBugs 的代碼檢查條件,如下圖 4 所示:


  • 圖 4. 使用 FindBugs 添加自定義代碼檢查規范


  • PMD

    PMD 是由 DARPA 在 SourceForge 上發布的開源 Java 代碼靜態分析工具。PMD 通過其內置的編碼規則對 Java 代碼進行靜態檢查,主要包括對潛在的 bug,未使用的代碼,重復的代碼,循環體創建新對象等問題的檢驗。PMD 提供了和多種 Java IDE 的集成,例如 Eclipse,IDEA,NetBean 等。本文主要使用 PMD 以插件方式與 Eclipse 集成。如下圖 5 所示:在 Violations Overview 視圖中,按照代碼缺陷嚴重性集中顯示了 PMD 靜態代碼分析的結果。


  • 圖 5. 使用 PMD 進行靜態代碼分析


  • PMD 同樣也支持開發人員對代碼檢查規范進行自定義配置。開發人員可以在下圖 6 中的面板中添加、刪除、導入、導出代碼檢查規范。


  • 圖 6. 使用 PMD 添加自定義代碼檢查規范


  • Jtest

    Jtest 是 Parasoft 公司推出的一款針對 Java 語言的自動化代碼優化和測試工具,Jtest 的靜態代碼分析功能能夠按照其內置的超過 800 條的 Java 編碼規范自動檢查並糾正這些隱蔽且難以修復的編碼錯誤。同時,還支持用戶自定義編碼規則,幫助用戶預防一些特殊用法的錯誤。Jtest 提供了基於 Eclipse 的插件安裝。Jtest 支持開發人員對 Java 代碼進行編碼規范檢查,並在 Jtask 窗口中集中顯示檢查結果,如下圖 7 所示:


  • 圖 7. 使用 Jtest 進行靜態代碼分析


  • 同時,Jtest 還提供了對用戶定製代碼檢查配置甚至自定義編碼規則的支持,這一功能使得開發人員可以基於不同場景定製所需要的編碼規范,如圖 8 所示:


  • 圖 8. 使用 Jtest 添加自定義代碼檢查規范

  • Java 靜態分析工具對比

    本章節將從以下幾個方面對上述 Java 靜態分析工具進行比較:

    應用技術及分析對象

    下表 1 列出了不同工具的分析對象及應用技術對比:


  • 表 1. 不同工具的分析對象及應用技術對比

  • Java 靜態分析工具

    分析對象

    應用技術

    Checkstyle Java 源文件 缺陷模式匹配

    FindBugs 位元組碼 缺陷模式匹配;數據流分析

    PMD Java 源代碼 缺陷模式匹配

    Jtest Java 源代碼 缺陷模式匹配;數據流分析


    內置編程規范

    Checkstyle:

  • Javadoc 注釋:檢查類及方法的 Javadoc 注釋

  • 命名約定:檢查命名是否符合命名規范

  • 標題:檢查文件是否以某些行開頭

  • Import 語句:檢查 Import 語句是否符合定義規范

  • 代碼塊大小,即檢查類、方法等代碼塊的行數

  • 空白:檢查空白符,如 tab,回車符等

  • 修飾符:修飾符號的檢查,如修飾符的定義順序

  • 塊:檢查是否有空塊或無效塊

  • 代碼問題:檢查重復代碼,條件判斷,魔數等問題

  • 類設計:檢查類的定義是否符合規范,如構造函數的定義等問題

  • FindBugs:

  • Bad practice 壞的實踐:常見代碼錯誤,用於靜態代碼檢查時進行缺陷模式匹配

  • Correctness 可能導致錯誤的代碼,如空指針引用等

  • 國際化相關問題:如錯誤的字元串轉換

  • 可能受到的惡意攻擊,如訪問許可權修飾符的定義等

  • 多線程的正確性:如多線程編程時常見的同步,線程調度問題。

  • 運行時性能問題:如由變數定義,方法調用導致的代碼低效問題。

  • PMD:

  • 可能的 Bugs:檢查潛在代碼錯誤,如空 try/catch/finally/switch 語句

  • 未使用代碼(Dead code):檢查未使用的變數,參數,方法

  • 復雜的表達式:檢查不必要的 if 語句,可被 while 替代的 for 循環

  • 重復的代碼:檢查重復的代碼

  • 循環體創建新對象:檢查在循環體內實例化新對象

  • 資源關閉:檢查 Connect,Result,Statement 等資源使用之後是否被關閉掉

  • Jtest

  • 可能的錯誤:如內存破壞、內存泄露、指針錯誤、庫錯誤、邏輯錯誤和演算法錯誤等

  • 未使用代碼:檢查未使用的變數,參數,方法

  • 初始化錯誤:內存分配錯誤、變數初始化錯誤、變數定義沖突

  • 命名約定:檢查命名是否符合命名規范

  • Javadoc 注釋:檢查類及方法的 Javadoc 注釋

  • 線程和同步:檢驗多線程編程時常見的同步,線程調度問題

  • 國際化問題:

  • 垃圾回收:檢查變數及 JDBC 資源是否存在內存泄露隱患

  • 錯誤檢查能力

    為比較上述 Java 靜態分析工具的代碼缺陷檢測能力,本文將使用一段示例代碼進行試驗,示例代碼中將涵蓋我們開發中的幾類常見錯誤,如引用操作、對象操作、表達式復雜化、數 組使用、未使用變數或代碼段、資源回收、方法調用及代碼設計幾個方面。最後本文將分別記錄在默認檢查規范設置下,不同工具對該示例代碼的分析結果。以下為 示例代碼 Test.java。其中,代碼的注釋部分列舉了代碼中可能存在的缺陷。


  • 清單 1. Test.java 示例代碼
  • package Test;import java.io.*;public class Test {/** * Write the bytes from input stream to output stream. * The input stream and output stream are not closed. * @param is * @param os * @throws IOException */public boolean (InputStream is, OutputStream os)throws IOException {intcount = 0;//缺少空指針判斷byte[] buffer =new byte[1024];while((count = is.read(buffer)) >= 0) {os.write(buffer,0, count);}//未關閉I/O流returntrue;}/** * * @param a * @param b * @param ending * @return the elements from a to b, and stop when meet element ending */publicvoid (String[] a, String[] b, String ending){intindex;String temp =null;//空指針錯誤System.out.println(temp.length());//未使用變數intlength=a.length;for(index=0; index&a.length; index++){//多餘的if語句if(true){//對象比較 應使用equalsif(temp==ending){break;}//缺少 數組下標越界檢查b[index]=temp;}}}/** * * @param file * @return file contents as striwww.fltbj.cn#ll if file does not exist */public void readFile(File file) {InputStream is =null;OutputStream os =null;try{is =new BufferedInputStream(newFileInputStream(file));os =new ByteArrayOutputStream();//未使用方法返回值(is,os);is.close();os.close();}catch (IOException e) {//可能造成I/O流未關閉e.printStackTrace();}finally{//空的try/catch/finally塊}}}



  • 通過以上測試代碼,我們對已有 Java 靜態代碼分析工具的檢驗結果做了如下比較,如下表 2 所示。


  • 表 2. Java 靜態代碼分析工具對比

    代碼缺陷分類

    示例

    Checkstyle

    FindBugs

    PMD

    Jtest

    引用操作 空指針引用 √ √ √ √

    對象操作 對象比較(使用 == 而不是 equals) √ √ √

    表達式復雜化 多餘的 if 語句 √

    數組使用 數組下標越界 √

    未使用變數或代碼段 未使用變數 √ √ √

    資源回收 I/O 未關閉 √ √

    方法調用 未使用方法返回值 √

    代碼設計 空的 try/catch/finally 塊 √


    由表中可以看出幾種工具對於代碼檢查各有側重。其中,Checkstyle 更偏重於代碼編寫格式,及是否符合編碼規范的檢驗,對代碼 bug 的發現功能較弱;而 FindBugs,PMD,Jtest 著重於發現代碼缺陷。在對代碼缺陷檢查中,這三種工具在針對的代碼缺陷類別也各有不同,且類別之間有重疊。

    總結

    本文分別從功能、特性和內置編程規范等方面詳細介紹了包括 Checkstyle,FindBugs,PMD,Jtest 在內的四種主流 Java 靜態代碼分析工具,並通過一段 Java 代碼示例對這四種工具的代碼分析能力進行比較。由於這四種工具內置編程規范各有不同,因此它們對不同種類的代碼問題的發現能力也有所不同。其中 Checkstyle 更加偏重於代碼編寫格式檢查,而 FindBugs,PMD,Jtest 著重於發現代碼缺陷。最後,希望本文能夠幫助 Java 軟體開發和測試人員進一步了解以上四種主流 Java 靜態分析工具,並幫助他們根據需求選擇合適的工具。

③ java 代碼覆蓋率檢查工具 哪種比較好

clover
emma

我常用這兩個.

④ java程序代碼相似度檢測軟體

Sonar
在看一篇資料時http://www.darkmi.com/man/SpringSide3/,注意到的
Sonar
是一個集成了CheckStyle,PMD,Findbugs的代碼校驗規則
,重復代碼發現,代碼測試覆蓋率,
代碼注釋率,及所有的檢測率變化追蹤的完美代碼質量檢查工具。
我也不會用這個

⑤ java中,代碼檢查工具check-style檢查出來的錯誤很多,請教各位,有什麼快速修改的方法不

某些錯誤產生並不一定代表程序無法編譯通過,而是不符合某個規范或用了比較舊版本的jdk所導致的,check-style應該可以設置錯誤類型的,比如沒有構造方法這樣的錯誤就可以忽略的,別急,慢慢來,一般調試別人的程序需要3-4周時間,熟練了就好。

⑥ Java開發工具主要有哪些

一 看書已經是一種落後的學習方式

我上大學的時候學習Java,也是通過看書的方式學習的,當時學的很費勁,只有死板的文字,整了一本厚厚的書,啃了將近一年,也是迷迷瞪瞪的,有長進,但不是太大。在書里涉及到一些實際操作的步驟的時候,通過軟體表現,中間會遇到很多書里沒說的問題,讓人只能糾結。

二 與其看死板的書,不如看網上直播Java課程

現在我是一件公司的Java技術總監,技術實力那是一級棒的。在大學里,看了兩三年的書,沒什麼長進,差點放棄了Java,但是放棄的話總覺的太可惜了,只能回鍋在學習一些,但是當時面臨的問題是什麼呢,白天要工作,要創造利潤生活啊,又不好意思跟家裡要錢,所以導致我沒時間去提升自己的技術實力,只能每天混日子。後來我一個朋友讓我在網上看Java直播課程,每天晚上都是高手分享的,可以現場互動,我抱著試試看看的態度,在網上聽了幾天,都是晚上講課,也不耽誤我白天工作,讓我欣喜的是,當在直播中看著老師的實戰操作以及老師透徹的講解,讓我有一直茅塞頓開的感覺,很多困擾我很多年的問題,都解開了,原來看直播的學習效率,直接秒殺看書啊。當然好東西,要給大家一塊分享,如果你想提升自己的Java實力,晚上有時間也可以來聽聽的,在這個群里,開頭的前面幾位是:557,然後在中間的一組是:101,位於最後位置的是:916,按照前後的順序組合起來就ok了。



三 Java程序員新手老手都離不開八大開發工具


現在有很多庫、實用工具和程序任Java開發人員選擇。每個工具都有其優點,但其中有一些因它的知名度、多功能和有效力從眾多選項中脫穎而出。

以下這8個工具,從代碼構建到錯誤擠壓,覆蓋Java開發的全域。學習這些工具可以幫助你改善代碼質量,成為一個更高效的Java開發人員。


1.Eclipse

盡管IntelliJ IDEA、NetBeans和一些其他的IDE正在日益普及,但是有調查表明,Eclipse仍然是幾乎半數Java開發人員首選的開發環境。 Eclipse是IDE領域的瑞士軍刀,有著大量定製的介面和無數的插件。它無處不在,後面本文將推薦的其他所有工具都提供Eclipse插件。

Eclipse的工作流程可分為三個方面:工作台,工作空間和視角。工作台作為到IDE的出發點。工作空間將項目、文件和配置設置組合在一個單獨的 目錄下。視角定義工具、視圖和有效設置。雖然新手開發人員可能會覺得相比Netbeans和IntelliJ IDEA,Eclipse使用起來更難,但Eclipse的靈活,使其成為企業開發的首選IDE。

Luna,Eclipse的最新版本,支持Java 8、分屏編輯、新的黑色主題,以及一個功能齊全的命令行終端。


2.Gradle


Gradle是一個自動化項目工具,建立在Apache Maven和Apache Ant的功能上。雖然Gradle並不是非常流行的構建工具(超流行的是Maven,64%的Java開發人員會選擇它),但它的普及速度很快。它也可作為默認的Android構建工具。

Gradle引以為傲的是它的簡單。Gradle使用Groovy編程語言,與Maven和Ant使用XML語法截然相反。一個基本的Gradle構建文件由一行簡單的代碼組成:


3.Javadoc

Javadoc是Oracle提供的文檔生成器。它可以將特殊格式的注釋解析為HTML文檔。以下截圖就是Javadoc生成的Java SE 8 API規范:

Javadoc注釋使用開放標簽、關閉標簽,以及一個或多個描述性標簽的格式。開放式標簽類似於標准Java多行注釋標記,使用兩個星號的除外。Javadoc也解析普通的HTML標簽。

Javadoc自動格式化標簽和關鍵字,除非另有規定。Javadoc廣泛使用超鏈接,允許你參考和鏈接到代碼的不同區域。許多IDE——包括 Eclipse——可以自動添加Javadoc注釋模塊到變數、類和方法中。支持Maven、Gradle和Ant的插件在編譯代碼的同時也可以構建 Javadoc HTML。


4.JUnit


JUnit是用於編寫和運行單元測試的開源框架。一個基本的JUnit測試包括測試類、測試方法、以及執行測試的功能。 JUnit使用標注來確定測試如何構造和運行。例如,如果你的程序有一個類叫做MathClass,具有乘法和除法的方法,你可以創建JUnit測試來檢 查不符合預期的值。輸入數字2和5到乘法方法,你希望得到的結果為10。當輸入0作為除法方法的第二個參數時,你會期望給出一個數字計算異常的警告因為除 數不能為0:

@Test標注規定,MathClass方法是一個測試用例。 在JUnit提供額外的標注,比如@Before,這樣你就可以在測試運行之前設置環境。 JUnit還可以設置規則用於定義測試方法的行為。例如,TemporaryFolder規則使得一旦測試完成,由測試創建的文件或文件夾就會被刪除。


5.Cobertura

Cobertura可用於分析Java代碼的測試覆蓋率。Cobertura根據沒有被測試覆蓋的代碼生成基於HTML的報告。

Cobertura提供可用於插裝、檢查和測試代碼的工具。通過監控可測試的代碼,Cobertura允許你使用你選擇的測試框架,甚至不需要測試框架就可以運行程序。

Cobertura根據行、分支和程序包三個方面給出代碼覆蓋報告。每個類別都有一個可自定義的閾值,如果覆蓋面低於閾值,就會觸發警告。Cobertura還集成了Maven和Gradle的自動檢測功能。


6.FindBugs

FindBugs是一個匹配編譯代碼模式,而非使用bug資料庫的工具。當提供源代碼時,FindBugs還可高亮顯示檢測出bug的代碼行。

在它的3.0.1版本中,FindBugs繼續保持著數以百計的bug描述。根據bug的嚴重程度,FindBugs將bug分為四個水平:相關 的,令人困擾的,可怕的,以及最可怕的。除了圖形用戶界面,FindBugs還提供一個命令行界面,Ant任務,以及Eclipse插件。


7.VisualVM

包含在JDK中的VisualVM是監控和審查Java應用程序性能的工具。 VisualVM檢測並重視活躍的JVM實例來檢索有關進程的診斷信息。

VisualVM可以很容易地實時診斷性能問題。它提供了全套的分析工具,包括JConsole、jstack、jmap、jinfo和jstat等。此外,你還可以對JVM做一個快照,這樣以後在任何時都能審查。


8.Groovy

Groovy是一種編程語言,通過添加新的關鍵字,自動導入常用的類,以及可選類型變數聲明,既簡化又擴展了Java。

Groovy的核心優勢之一是它的腳本功能。類可以被編譯為Java位元組碼或使用Groovy Shell動態執行。Groovy的Java基礎使得它相較於Jython和JRuby更容易為Java開發人員所接受


三優秀Java程序員,應該養成哪些習慣

當我們評價一個程序員是否優秀時,要從多個方面進行評估。 專業技能、專業知識、創造力、經驗,這些都是重要的因素。當然,還有他們的工作態度、工作效率和工作質量。如果程序員的工作是沒有效率的,那就意味著他們所投入的時間和精力是沒有效果的。最近看到一篇博文中,他們總結了10個影響程序員工作效率的壞習慣。看完這篇文章後你會發現,裡面所列舉的壞習慣,總有一兩個可以在自己的身上找得到。從中你也可以學習到那些優秀的程序員是如何提高工作效率的。

1.專注於一個工作而不是同時處理多個任務同一時間處理多個工作任務,我們對這種情況並不陌生。有時候是迫不得已,但有時候也是個人的習慣造成的。「同一時間處理多個任務」看起來不錯,給人感覺你的工作出色,但實際上,由於要不斷轉換工作內容,它會影響了你的專注力和創造力。對於程序員來說,專注於某一個開發工作是很重要的。如果要同時處理幾個任務,你不得不為此消耗精力,這樣一來工作效率就會降低了。解決的方法是做好工作安排,把相似的工作放在一起,專心做好一個工作直到它完成了為止,再去做下一個工作。

2.建立一個有條理的工作系統程序員給很多人的感覺是有點神經質的,就是那種專注起來令人傾心,糊塗起來讓人抓狂的那種。他們可以投入到開發環境中不眠不休,但有很多人也會在工作中出現各種馬虎,健忘和凌亂的狀況。工作沒有條理可以直接影響工作效率。其實這個毛病是可以改掉的,從辦公桌上物件的擺放,到建立工作計劃,一步一步地作好安排,制定一個井井有條的工作系統可以有助提高工作效率。你可以在livecoding上看一下其他程序員的直播,不僅可以發現一些有趣的項目,還可以留意一下人家是如何把每一件事情都處理得有條不紊的。優秀的程序員也許在生活中會有各種丟三拉四的表現,但一旦投入到工作中時,他們會變得非常專注和注重條理。

⑦ 如何提高java代碼質量檢查工具

1. 寫完代碼後用代碼給是工具format一下,讓其格式符合規范,看起來自然舒服; 完美主義型的程序員請在敲代碼的時候就按照規范的格式來,這樣離開了format工具代碼一樣漂亮;
2. 消除代碼中所有的warnning,警告信息畢竟不是在開玩笑,不能置之不理,一些可以確定不存在風險、且無法修復的warning,如在1.5及以後的JDK版本中使用不帶泛型的老版集合介面時編譯器給出的warning, 可使用@SuppressWarnings標注將其忽略;
3. 提交每一個change set之前,使用Findbug這個工具(有eclipse插件)檢查一遍代碼,把它提示的所有bug都修掉,這樣可以消除大量程序隱患;
4. 編寫充足的測試用例,如果你發現自己的代碼不可測,即無法方便地編寫test case,那一定是代碼結構設計得有問題,重構之,直到可測試為止。
總結:在沒有導師review和指導的情況下,完全可以通過上面四個方法自行提高代碼質量和OO設計水平。而代碼質量也在一定程度上反映了程序員對待職業的態度,你當自己是碼農,按碼農的標准去幹活,那你永遠是碼農。你當自己是藝術家,按藝術的標準是coding,那麼終有一天你會成為代碼藝術家。

熱點內容
open函數c語言 發布:2024-04-25 21:47:42 瀏覽:405
簡訊刪除後怎麼找伺服器 發布:2024-04-25 21:15:06 瀏覽:387
查ip地址伺服器數量 發布:2024-04-25 20:49:48 瀏覽:620
安卓手機單核性能為什麼不高 發布:2024-04-25 20:48:07 瀏覽:56
群暉php 發布:2024-04-25 20:00:35 瀏覽:884
怎麼查看我的wifi密碼 發布:2024-04-25 18:54:43 瀏覽:757
fckeditorforjava 發布:2024-04-25 18:50:27 瀏覽:624
優酷上傳視頻需要多久 發布:2024-04-25 18:33:05 瀏覽:675
inf12編譯器 發布:2024-04-25 18:15:39 瀏覽:99
撲克總督3安卓哪裡下載 發布:2024-04-25 18:10:02 瀏覽:395