一 ?看書已經(jīng)是一種落后的學(xué)習(xí)方式
靖安網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián),靖安網(wǎng)站設(shè)計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為靖安上千家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)網(wǎng)站制作要多少錢,請找那個售后服務(wù)好的靖安做網(wǎng)站的公司定做!
我上大學(xué)的時候?qū)W習(xí)Java,也是通過看書的方式學(xué)習(xí)的,當(dāng)時學(xué)的很費勁,只有死板的文字,整了一本厚厚的書,啃了將近一年,也是迷迷瞪瞪的,有長進(jìn),但不是太大。在書里涉及到一些實際操作的步驟的時候,通過軟件表現(xiàn),中間會遇到很多書里沒說的問題,讓人只能糾結(jié)。
二 ?與其看死板的書,不如看網(wǎng)上直播Java課程
現(xiàn)在我是一件公司的Java技術(shù)總監(jiān),技術(shù)實力那是一級棒的。在大學(xué)里,看了兩三年的書,沒什么長進(jìn),差點放棄了Java,但是放棄的話總覺的太可惜了,只能回鍋在學(xué)習(xí)一些,但是當(dāng)時面臨的問題是什么呢,白天要工作,要創(chuàng)造利潤生活啊,又不好意思跟家里要錢,所以導(dǎo)致我沒時間去提升自己的技術(shù)實力,只能每天混日子。后來我一個朋友讓我在網(wǎng)上看Java直播課程,每天晚上都是高手分享的,可以現(xiàn)場互動,我抱著試試看看的態(tài)度,在網(wǎng)上聽了幾天,都是晚上講課,也不耽誤我白天工作,讓我欣喜的是,當(dāng)在直播中看著老師的實戰(zhàn)操作以及老師透徹的講解,讓我有一直茅塞頓開的感覺,很多困擾我很多年的問題,都解開了,原來看直播的學(xué)習(xí)效率,直接秒殺看書啊。當(dāng)然好東西,要給大家一塊分享,如果你想提升自己的Java實力,晚上有時間也可以來聽聽的,在這個群里,開頭的前面幾位是:557,然后在中間的一組是:101,位于最后位置的是:916,按照前后的順序組合起來就ok了。
三 ?Java程序員新手老手都離不開八大開發(fā)工具
現(xiàn)在有很多庫、實用工具和程序任Java開發(fā)人員選擇。每個工具都有其優(yōu)點,但其中有一些因它的知名度、多功能和有效力從眾多選項中脫穎而出。
以下這8個工具,從代碼構(gòu)建到錯誤擠壓,覆蓋Java開發(fā)的全域。學(xué)習(xí)這些工具可以幫助你改善代碼質(zhì)量,成為一個更高效的Java開發(fā)人員。
1.Eclipse
盡管IntelliJ IDEA、NetBeans和一些其他的IDE正在日益普及,但是有調(diào)查表明,Eclipse仍然是幾乎半數(shù)Java開發(fā)人員首選的開發(fā)環(huán)境。 Eclipse是IDE領(lǐng)域的瑞士軍刀,有著大量定制的接口和無數(shù)的插件。它無處不在,后面本文將推薦的其他所有工具都提供Eclipse插件。
Eclipse的工作流程可分為三個方面:工作臺,工作空間和視角。工作臺作為到IDE的出發(fā)點。工作空間將項目、文件和配置設(shè)置組合在一個單獨的 目錄下。視角定義工具、視圖和有效設(shè)置。雖然新手開發(fā)人員可能會覺得相比Netbeans和IntelliJ IDEA,Eclipse使用起來更難,但Eclipse的靈活,使其成為企業(yè)開發(fā)的首選IDE。
Luna,Eclipse的最新版本,支持Java 8、分屏編輯、新的黑色主題,以及一個功能齊全的命令行終端。
2.Gradle
Gradle是一個自動化項目工具,建立在Apache Maven和Apache Ant的功能上。雖然Gradle并不是非常流行的構(gòu)建工具(超流行的是Maven,64%的Java開發(fā)人員會選擇它),但它的普及速度很快。它也可作為默認(rèn)的Android構(gòu)建工具。
Gradle引以為傲的是它的簡單。Gradle使用Groovy編程語言,與Maven和Ant使用XML語法截然相反。一個基本的Gradle構(gòu)建文件由一行簡單的代碼組成:
3.Javadoc
Javadoc是Oracle提供的文檔生成器。它可以將特殊格式的注釋解析為HTML文檔。以下截圖就是Javadoc生成的Java SE 8 API規(guī)范:
Javadoc注釋使用開放標(biāo)簽、關(guān)閉標(biāo)簽,以及一個或多個描述性標(biāo)簽的格式。開放式標(biāo)簽類似于標(biāo)準(zhǔn)Java多行注釋標(biāo)記,使用兩個星號的除外。Javadoc也解析普通的HTML標(biāo)簽。
Javadoc自動格式化標(biāo)簽和關(guān)鍵字,除非另有規(guī)定。Javadoc廣泛使用超鏈接,允許你參考和鏈接到代碼的不同區(qū)域。許多IDE——包括 Eclipse——可以自動添加Javadoc注釋模塊到變量、類和方法中。支持Maven、Gradle和Ant的插件在編譯代碼的同時也可以構(gòu)建 Javadoc HTML。
4.JUnit
JUnit是用于編寫和運行單元測試的開源框架。一個基本的JUnit測試包括測試類、測試方法、以及執(zhí)行測試的功能。 JUnit使用標(biāo)注來確定測試如何構(gòu)造和運行。例如,如果你的程序有一個類叫做MathClass,具有乘法和除法的方法,你可以創(chuàng)建JUnit測試來檢 查不符合預(yù)期的值。輸入數(shù)字2和5到乘法方法,你希望得到的結(jié)果為10。當(dāng)輸入0作為除法方法的第二個參數(shù)時,你會期望給出一個數(shù)字計算異常的警告因為除 數(shù)不能為0:
@Test標(biāo)注規(guī)定,MathClass方法是一個測試用例。 在JUnit提供額外的標(biāo)注,比如@Before,這樣你就可以在測試運行之前設(shè)置環(huán)境。 JUnit還可以設(shè)置規(guī)則用于定義測試方法的行為。例如,TemporaryFolder規(guī)則使得一旦測試完成,由測試創(chuàng)建的文件或文件夾就會被刪除。
5.Cobertura
Cobertura可用于分析Java代碼的測試覆蓋率。Cobertura根據(jù)沒有被測試覆蓋的代碼生成基于HTML的報告。
Cobertura提供可用于插裝、檢查和測試代碼的工具。通過監(jiān)控可測試的代碼,Cobertura允許你使用你選擇的測試框架,甚至不需要測試框架就可以運行程序。
Cobertura根據(jù)行、分支和程序包三個方面給出代碼覆蓋報告。每個類別都有一個可自定義的閾值,如果覆蓋面低于閾值,就會觸發(fā)警告。Cobertura還集成了Maven和Gradle?的自動檢測功能。
6.FindBugs
FindBugs是一個匹配編譯代碼模式,而非使用bug數(shù)據(jù)庫的工具。當(dāng)提供源代碼時,F(xiàn)indBugs還可高亮顯示檢測出bug的代碼行。
在它的3.0.1版本中,F(xiàn)indBugs繼續(xù)保持著數(shù)以百計的bug描述。根據(jù)bug的嚴(yán)重程度,F(xiàn)indBugs將bug分為四個水平:相關(guān) 的,令人困擾的,可怕的,以及最可怕的。除了圖形用戶界面,F(xiàn)indBugs還提供一個命令行界面,Ant任務(wù),以及Eclipse插件。
7.VisualVM
包含在JDK中的VisualVM是監(jiān)控和審查Java應(yīng)用程序性能的工具。 VisualVM檢測并重視活躍的JVM實例來檢索有關(guān)進(jìn)程的診斷信息。
VisualVM可以很容易地實時診斷性能問題。它提供了全套的分析工具,包括JConsole、jstack、jmap、jinfo和jstat等。此外,你還可以對JVM做一個快照,這樣以后在任何時都能審查。
8.Groovy
Groovy是一種編程語言,通過添加新的關(guān)鍵字,自動導(dǎo)入常用的類,以及可選類型變量聲明,既簡化又?jǐn)U展了Java。
Groovy的核心優(yōu)勢之一是它的腳本功能。類可以被編譯為Java字節(jié)碼或使用Groovy Shell動態(tài)執(zhí)行。Groovy的Java基礎(chǔ)使得它相較于Jython和JRuby更容易為Java開發(fā)人員所接受
三??優(yōu)秀Java程序員,應(yīng)該養(yǎng)成哪些習(xí)慣
當(dāng)我們評價一個程序員是否優(yōu)秀時,要從多個方面進(jìn)行評估。 專業(yè)技能、專業(yè)知識、創(chuàng)造力、經(jīng)驗,這些都是重要的因素。當(dāng)然,還有他們的工作態(tài)度、工作效率和工作質(zhì)量。如果程序員的工作是沒有效率的,那就意味著他們所投入的時間和精力是沒有效果的。最近看到一篇博文中,他們總結(jié)了10個影響程序員工作效率的壞習(xí)慣??赐赀@篇文章后你會發(fā)現(xiàn),里面所列舉的壞習(xí)慣,總有一兩個可以在自己的身上找得到。從中你也可以學(xué)習(xí)到那些優(yōu)秀的程序員是如何提高工作效率的。
1.專注于一個工作而不是同時處理多個任務(wù)同一時間處理多個工作任務(wù),我們對這種情況并不陌生。有時候是迫不得已,但有時候也是個人的習(xí)慣造成的?!巴粫r間處理多個任務(wù)”看起來不錯,給人感覺你的工作出色,但實際上,由于要不斷轉(zhuǎn)換工作內(nèi)容,它會影響了你的專注力和創(chuàng)造力。對于程序員來說,專注于某一個開發(fā)工作是很重要的。如果要同時處理幾個任務(wù),你不得不為此消耗精力,這樣一來工作效率就會降低了。解決的方法是做好工作安排,把相似的工作放在一起,專心做好一個工作直到它完成了為止,再去做下一個工作。
2.建立一個有條理的工作系統(tǒng)程序員給很多人的感覺是有點神經(jīng)質(zhì)的,就是那種專注起來令人傾心,糊涂起來讓人抓狂的那種。他們可以投入到開發(fā)環(huán)境中不眠不休,但有很多人也會在工作中出現(xiàn)各種馬虎,健忘和凌亂的狀況。工作沒有條理可以直接影響工作效率。其實這個毛病是可以改掉的,從辦公桌上物件的擺放,到建立工作計劃,一步一步地作好安排,制定一個井井有條的工作系統(tǒng)可以有助提高工作效率。你可以在livecoding上看一下其他程序員的直播,不僅可以發(fā)現(xiàn)一些有趣的項目,還可以留意一下人家是如何把每一件事情都處理得有條不紊的。優(yōu)秀的程序員也許在生活中會有各種丟三拉四的表現(xiàn),但一旦投入到工作中時,他們會變得非常專注和注重條理。
看來要逼我出絕招拉。
幾個開源工具推薦
目前進(jìn)行一些項目,經(jīng)常需要到現(xiàn)場開發(fā)。當(dāng)在公司內(nèi)部的時候,可以充分享受公司內(nèi)部的軟件資源,如配置管理工具(ClearCase)、設(shè)計工具(Rose)、測試管理(ClearQuest),項目管理(Project)等。但這些都是非常龐大又非常復(fù)雜,在客戶現(xiàn)場條件下根本無法使用。
現(xiàn)在開源的工具,又小巧,又簡單方便,在現(xiàn)場開發(fā)或小型項目中特別有用。下面簡單推薦幾種,拋磚引玉。
1 Ganttproject 1.11.1:項目計劃工具
網(wǎng)址:
你可以使用這款軟件來制定項目計劃并跟蹤項目資源。Ganttproject 能夠?qū)㈨椖康母鱾€組成部分分層次排列,并與相應(yīng)的人員和時間期限掛鉤。它使用一個條狀圖來顯示項目的進(jìn)展情況,你能從中看到每項任務(wù)的預(yù)定完成時間和實際的進(jìn)度。你可以為每個項目組成員分配任務(wù),設(shè)定任務(wù)的優(yōu)先級和完成期限。Ganttproject的輸出功能相當(dāng)完備,不僅可以把數(shù)據(jù)保存為pdf文件和 csv電子數(shù)據(jù)表文件,還可以輸出為HTML文件發(fā)布到Internet上。由于Ganttproject是一款純Java應(yīng)用程序,因此它可以運行于 Windows、Linux和Mac OS等多個平臺上。
2 DotProject 2.0.4:項目管理工具
網(wǎng)址:http://
dotProject是一個基于LAMP的開源項目管理軟件。開發(fā)語言為PHP,數(shù)據(jù)庫默認(rèn)推薦使用MySQL(基本上可以理解為只能用Mysql)。項目管理工具,當(dāng)前版本支持界面很漂亮。
3 NVU 1.0:HTML編輯器
網(wǎng)址:http://
NVU 實際上起源于Netscape,還記得那個有點笨拙的HTML編輯器Netscape Composer嗎?NVU就是在它的基礎(chǔ)上進(jìn)一步開發(fā)出來的,不過,最新版本的NVU已經(jīng)不是當(dāng)年的那只丑小鴨,它完全能夠勝任專業(yè)網(wǎng)頁設(shè)計工作的需求。與FrontPage和Dreamweaver這類商業(yè)HTML編輯器一樣,這款軟件(目前支持Windows、Linux和Mac OS平臺)同時提供了源代碼直接編輯和“所見即所得”這兩種網(wǎng)頁設(shè)計環(huán)境。
NVU嚴(yán)格遵循W3C聯(lián)盟的標(biāo)準(zhǔn),其生成的HTML代碼也相當(dāng)緊湊,它會幫你排除錯誤或冗余的代碼。這款編輯器提供了拼寫和語法檢查功能,并且允許你采用不同的主題方案對界面進(jìn)行定制。你可以自行創(chuàng)建并保存模版,還可以利用內(nèi)置的FTP客戶端把頁面迅速上傳到Web服務(wù)器上。
4. Mozilla Firefox:Web瀏覽器
網(wǎng)址:
Firefox 瀏覽器應(yīng)該是Mozilla迄今為止最成功的一個開源軟件項目。從2004年11月到2005年2月,這款 Internet Explorer的替代軟件已經(jīng)獲得了超過2500萬的下載次數(shù)(僅指官方網(wǎng)站和鏡像網(wǎng)站的下載次數(shù))。如果加上其它的下載網(wǎng)址以及用光盤方式發(fā)放的 Firefox,這個數(shù)量可能還會翻倍。Firefox擁有不少值得稱贊的易用性功能,比如支持標(biāo)簽式瀏覽窗口、具備開放的插件接口,你可以安裝廣告攔截器、Google搜索條以及其它大量插件。Firefox不支持Visual Basic腳本、ActiveX和BHO(Browser Helper Objects),相對來說不太容易遭受惡意HTML代碼的攻擊,當(dāng)然你也不能完全高枕無憂。
5 Freemind 0.8:Mindmap軟件
網(wǎng)址:
什么是Mindmap?它是由英國人托尼?巴贊創(chuàng)造的一種筆記方法,和傳統(tǒng)的直線記錄方法完全不同,它以直觀形象的圖示建立起各個概念之間的聯(lián)系。在國內(nèi),MindMap又被稱為腦圖或思維導(dǎo)圖。Freemind 是一款Java程序,它可以幫你在一些隨機的內(nèi)容之間建立起有機的聯(lián)系。
在Freemind中,首先你需要選中一個主題,然后從幾個節(jié)點開始不斷豐富 Mindmap的內(nèi)容。每次加入新的元素,你都可以用連線將它與原有的元素聯(lián)系起來。最終的Mindmap可以用HTML文檔的形式輸出。該軟件的幫助信息十分全面,即便你對Mindmap不太熟悉也可以按照它的提示很快掌握Mindmap概念及軟件的使用。
6 SubVersion1.4:版本管理工具
網(wǎng)址:
Subversion是新一代的版本控制工具,不僅可以管理程序源代碼,也可以應(yīng)用于其他協(xié)作管理數(shù)據(jù)的工作,例如使用Subversion來合作寫樂譜,美工用來共同作圖,功能很強大。且有專門的中文網(wǎng)站提供更多的技術(shù)支持、輔助工具和幫助。
7 BugFree1.0:Bug管理軟件
網(wǎng)址:
BugFree是借鑒微軟的研發(fā)流程和Bug管理理念,使用PHP+MySQL獨立寫出的一個Bug管理 系統(tǒng)。簡單實用、免費并且開放源代碼(遵循GNU GPL)。是由國人自己自己開發(fā)的,強力支持。
8,eclipse
9,myeclipse
10,spring framework
11,netbean
1.Eclipse
盡管IntelliJ IDEA、NetBeans和一些其他的IDE正在日益普及,但是有調(diào)查表明,Eclipse仍然是幾乎半數(shù)Java開發(fā)人員首選的開發(fā)環(huán)境。 Eclipse是IDE領(lǐng)域的瑞士軍刀,有著大量定制的接口和無數(shù)的插件。它無處不在,后面本文將推薦的其他所有工具都提供Eclipse插件。
Eclipse的工作流程可分為三個方面:工作臺,工作空間和視角。工作臺作為到IDE的出發(fā)點。工作空間將項目、文件和配置設(shè)置組合在一個單獨的 目錄下。視角定義工具、視圖和有效設(shè)置。雖然新手開發(fā)人員可能會覺得相比Netbeans和IntelliJ IDEA,Eclipse使用起來更難,但Eclipse的靈活性,使其成為企業(yè)開發(fā)的首選IDE。
Luna,Eclipse的最新版本,支持Java 8、分屏編輯、新的黑色主題,以及一個功能齊全的命令行終端。
官方網(wǎng)站:
2.Gradle
Gradle是一個自動化項目工具,建立在Apache Maven和Apache Ant的功能上。雖然Gradle并不是最流行的構(gòu)建工具(最流行的是Maven,64%的Java開發(fā)人員會選擇它),但它的普及速度很快。它也可作為默認(rèn)的Android構(gòu)建工具。
Gradle引以為傲的是它的簡單。Gradle使用Groovy編程語言,與Maven和Ant使用XML語法截然相反。一個基本的Gradle構(gòu)建文件由一行簡單的代碼組成:
apply plugin: 'java'.
下面的命令會生成一個Gradle構(gòu)建文件,創(chuàng)建項目文件的目錄樹,并附帶一個項目便攜式Gradle封裝:
$ gradle init --type java-library
Gradle還有可用于添加新的語言,生成支持IDE的項目文件,構(gòu)建本地二進(jìn)制文檔,檢查依賴性更新等等的插件。
想要了解更多信息,請參見Gradle的Java / JVM入門指南。
官方網(wǎng)站:
3.Javadoc
Javadoc是Oracle提供的文檔生成器。它可以將特殊格式的注釋解析為HTML文檔。以下截圖就是Javadoc生成的Java SE 8 API規(guī)范:
Javadoc注釋使用開放標(biāo)簽、關(guān)閉標(biāo)簽,以及一個或多個描述性標(biāo)簽的格式。開放式標(biāo)簽類似于標(biāo)準(zhǔn)Java多行注釋標(biāo)記,使用兩個星號的除外。Javadoc也解析普通的HTML標(biāo)簽。
Javadoc自動格式化標(biāo)簽和關(guān)鍵字,除非另有規(guī)定。Javadoc廣泛使用超鏈接,允許你參考和鏈接到代碼的不同區(qū)域。許多IDE——包括 Eclipse——可以自動添加Javadoc注釋模塊到變量、類和方法中。支持Maven、Gradle和Ant的插件在編譯代碼的同時也可以構(gòu)建 Javadoc HTML。
想要了解更多信息,請參閱Oracle關(guān)于如何為Javadoc工具寫文檔注釋的文章。
官方網(wǎng)站:
4.JUnit
JUnit是用于編寫和運行單元測試的開源框架。一個基本的JUnit測試包括測試類、測試方法、以及執(zhí)行測試的功能。 JUnit使用標(biāo)注來確定測試如何構(gòu)造和運行。例如,如果你的程序有一個類叫做MathClass,具有乘法和除法的方法,你可以創(chuàng)建JUnit測試來檢 查不符合預(yù)期的值。輸入數(shù)字2和5到乘法方法,你希望得到的結(jié)果為10。當(dāng)輸入0作為除法方法的第二個參數(shù)時,你會期望給出一個數(shù)字計算異常的警告因為除 數(shù)不能為0:
@Test標(biāo)注規(guī)定,MathClass方法是一個測試用例。 在JUnit提供額外的標(biāo)注,比如@Before,這樣你就可以在測試運行之前設(shè)置環(huán)境。 JUnit還可以設(shè)置規(guī)則用于定義測試方法的行為。例如,TemporaryFolder規(guī)則使得一旦測試完成,由測試創(chuàng)建的文件或文件夾就會被刪除。
想要了解更多信息,請參考JUnit入門。 此外還有使用JUnit單元測試的教程。
官方網(wǎng)站:
5.Cobertura
Cobertura可用于分析Java代碼的測試覆蓋率。Cobertura根據(jù)沒有被測試覆蓋的代碼生成基于HTML的報告。
Cobertura提供可用于插裝、檢查和測試代碼的工具。通過監(jiān)控可測試的代碼,Cobertura允許你使用你選擇的測試框架,甚至不需要測試框架就可以運行程序。
Cobertura根據(jù)行、分支和程序包三個方面給出代碼覆蓋報告。每個類別都有一個可自定義的閾值,如果覆蓋面低于閾值,就會觸發(fā)警告。Cobertura還集成了Maven和Gradle 的自動檢測功能。
Mkyong.com提供了一個將Cobertura與Maven整合的示例。
官方網(wǎng)站:
6.FindBugs
FindBugs是一個匹配編譯代碼模式,而非使用bug數(shù)據(jù)庫的工具。當(dāng)提供源代碼時,F(xiàn)indBugs還可高亮顯示檢測出bug的代碼行。
在它的3.0.1版本中,F(xiàn)indBugs繼續(xù)保持著數(shù)以百計的bug描述。根據(jù)bug的嚴(yán)重程度,F(xiàn)indBugs將bug分為四個水平:相關(guān) 的,令人困擾的,可怕的,以及最可怕的。除了圖形用戶界面,F(xiàn)indBugs還提供一個命令行界面,Ant任務(wù),以及Eclipse插件。
官方網(wǎng)站:
7.VisualVM
包含在JDK中的VisualVM是監(jiān)控和審查Java應(yīng)用程序性能的工具。 VisualVM檢測并重視活躍的JVM實例來檢索有關(guān)進(jìn)程的診斷信息。
VisualVM可以很容易地實時診斷性能問題。它提供了全套的分析工具,包括JConsole、jstack、jmap、jinfo和jstat等。此外,你還可以對JVM做一個快照,這樣以后在任何時都能審查。
官方網(wǎng)站:
8.Groovy
Groovy是一種編程語言,通過添加新的關(guān)鍵字,自動導(dǎo)入常用的類,以及可選類型變量聲明,既簡化又?jǐn)U展了Java。
Groovy的核心優(yōu)勢之一是它的腳本功能。類可以被編譯為Java字節(jié)碼或使用Groovy Shell動態(tài)執(zhí)行。Groovy的Java基礎(chǔ)使得它相較于Jython和JRuby更容易為Java開發(fā)人員所接受。
想要了解更多信息,請參見Groovy的入門指南。
官方網(wǎng)站:
Code Review中文應(yīng)該譯作“代碼審查”或是“代碼評審”,這是一個流程,當(dāng)開發(fā)人員寫好代碼后,需要讓別人來review一下他的代碼,這是一種有效發(fā)現(xiàn)BUG的方法。由此,我們可以審查代碼的風(fēng)格、邏輯、思路……,找出問題,以及改進(jìn)代碼。因為這是代碼剛剛出爐的時候,所以,這也是代碼重構(gòu),代碼調(diào)整,代碼修改的最佳時候。所以,Code Review是編碼實現(xiàn)中最最重要的一個環(huán)節(jié)。長時間以來,Code Review需要有一些有效的工具來支持,這樣我們就可以更容易,更有效率地來進(jìn)行代碼審查工作。下面是5個開源的代碼審查工具,他們可以幫助你更容易地進(jìn)行這項活動。1. Review board: Review board 是一個 基于web 的工具,主要設(shè)計給 django 和python的用戶。 Review board 可以幫助我們追蹤待決代碼的改動,并可以讓Code-Review更為容易和簡練。盡管Review board 最初被設(shè)計在VMware項目中使用,但現(xiàn)在其足夠地通用。當(dāng)前,其支持這些代碼版本管理軟件: SVN, CVS, Perforce, Git, Bazaar, 和Mercurial.Yahoo 是review-board的其中一個用戶。“Review board 已經(jīng)改變了代碼評審的方式,其可以強迫高質(zhì)量的代碼標(biāo)準(zhǔn)和風(fēng)格,并可以成為程序員編程的指導(dǎo)者。每一次,當(dāng)你訪問search.yahoo.com 時,其代碼都是使用 Review board工具Review過的。 We’re great fans of your work!”– Yahoo! Web Search 2. Codestriker: Codestriker 也是一個基于Web的應(yīng)用,其主要使用 GCI-Perl 腳本支持在線的代碼審查。Codestriker 可以集成于CVS, Subversion, ClearCase, Perforce 和Visual SourceSafe。并有一些插件可以提供支持其它的源碼管理工具。David Sitsky 是 Codestriker 的作者,并也是最活躍的開發(fā)人員之一。 Jason Remillard 是另一個活路的開發(fā)者,并給這個項目提供了最深遠(yuǎn)最有意義的貢獻(xiàn)。大量的程序員貢獻(xiàn)他們的代碼給 Codestriker 項目,導(dǎo)致了這個項目空前的繁榮。 3. Groogle: Groogle 是一個基于WEB的代碼評審工具。 Groogle 支持和 Subversion 集成。它主要提供如下的功能:各式各樣語言的語法高亮。 支持整個版本樹的比較。 支持當(dāng)個文件不同版本的diff功能,并有一個圖形的版本樹。 郵件通知所有的Reivew的人當(dāng)前的狀態(tài)。 認(rèn)證機制。 4. Rietveld: Rietveld 由Guido van Rossum 開發(fā)(他是Python的創(chuàng)造者,現(xiàn)在是Google的員工),這個工具是基于Mondrian 工具,作者一開始是為了Google 開發(fā)的,并且,它在很多方面和Review board 很像。它也是一個基于Web的應(yīng)用,并可以Google App Engine 當(dāng)主機。它使用了目前最流行的Web開發(fā)框架 django 并支持 Subversion 。當(dāng)前,任何一個使用 Google Code 的項目都可以使用 Rietveld 并且使用 python Subversion 服務(wù)器。當(dāng)然,它同樣支持其它的Subversion服務(wù)器。 5. JCR JCR 或者叫做 JCodeReview 也是一個基于WEB界面的最初設(shè)計給Reivew Java 語言的一個工具。當(dāng)然,現(xiàn)在,它可以被用于其它的非Java的代碼。JCR 主要想?yún)f(xié)助:審查者。所有的代碼更改都會被高亮,以及大多數(shù)語言的語法高亮。Code extracts 可以顯示代碼評審意見。如果你正在Review Java的代碼,你可以點擊代碼中的類名來查看相關(guān)的類的聲明。 項目所有者??梢?輕松創(chuàng)建并配置需要Review的項目,并不需要集成任何的軟件配置管理系統(tǒng)(SCM)。 流程信仰者。 所有的評語都會被記錄在數(shù)據(jù)庫中,并且會有狀態(tài)報告,以及各種各樣的統(tǒng)計。 架構(gòu)師和開發(fā)者。 這個系統(tǒng)也可以讓我們查看屬于單個文件的評語,這樣有利于我們重構(gòu)代碼。
1、 Checkstyle
Checkstyle 是SourceForge的開源項目,通過檢查對代碼編碼格式,命名約定,Javadoc,類設(shè)計等方面進(jìn)行代碼規(guī)范和風(fēng)格的檢查,從而有效約束開發(fā)人員更好地遵循代碼編寫規(guī)范。Checkstyle 提供了支持大多數(shù)常見IDE的插件。
2、FindBugs
FindBugs 是由馬里蘭大學(xué)提供的一款開源 Java 靜態(tài)代碼分析工具。FindBugs 通過檢查類文件或 JAR 文件,將字節(jié)碼與一組缺陷模式進(jìn)行對比從而發(fā)現(xiàn)代碼缺陷,完成靜態(tài)代碼分析。FindBugs 既提供可視化 UI 界面,同時也可以作為 Eclipse 插件使用。
3、PMD
PMD 是由 DARPA 在 SourceForge 上發(fā)布的開源 Java 代碼靜態(tài)分析工具。PMD 通過其內(nèi)置的編碼規(guī)則對 Java 代碼進(jìn)行靜態(tài)檢查,主要包括對潛在的 bug,未使用的代碼,重復(fù)的代碼,循環(huán)體創(chuàng)建新對象等問題的檢驗。PMD 提供了和多種 Java IDE 的集成,例如 Eclipse,IDEA,NetBean 等。
4、Jtest
Jtest 是Parasoft 公司推出的一款針對Java語言的自動化代碼優(yōu)化和測試工具,Jtest 的靜態(tài)代碼分析功能能夠按照其內(nèi)置的超過800條的 Java 編碼規(guī)范自動檢查并糾正這些隱蔽且難以修復(fù)的編碼錯誤。同時,還支持用戶自定義編碼規(guī)則,幫助用戶預(yù)防一些特殊用法的錯誤。
常用的工具有:
Eclipse ? 據(jù)數(shù)據(jù)顯示很多Java開發(fā)人員的Java開發(fā)工具便是Eclipse,這主要得益于Eclipse是一個開源的、可以基于Java的可擴展開發(fā)平臺。Eclipse本身而言,它只是一個框架和一組服務(wù),但可以通過插件組件構(gòu)建開發(fā)環(huán)境。
editplus ?EditPlus是一款由韓國 Sangil Kim (ES-Computing)開發(fā)的編輯器,可以作為C,Java,Php等等語言的一個簡單的IDE。EditPlus擁有無限制的撤消與重做、英文拼字檢查、自動換行、列數(shù)標(biāo)記、搜尋取代、同時編輯多文件、全屏幕瀏覽功能,也是一款常見的Java開發(fā)工具。
NetBeans ? NetBeans提供了功能全面的陣列,如轉(zhuǎn)換器,編輯器和代碼分析器,使用這些工具可以幫助我們使用的Java技術(shù)實現(xiàn)應(yīng)用程序。NetBeans工具范圍相當(dāng)廣泛,是一款的Java開發(fā)工具。
Junit ? ?Junit是一個可以幫助Java開發(fā)人員編寫和運行測試的單元測試框架。JUnit和市場上其他類似的框架有著本質(zhì)的區(qū)別。主要表現(xiàn)在你可以一次測試一個代碼塊,而不需要等待該模塊在運行測試前完成。實際上是你可以“先測試,然后寫代碼”
VisualVM ? ?VisualVM也是一款使用較多的Java開發(fā)工具。它最主要的功能便是可以排查故障,可以使用VisualVM整合多命令行JDK工具。如jvmstat、JMX和Serviceability Agent(SA)中使用VisualVM。VisualVM最出名的是附加了API,以獲得更多的數(shù)據(jù),以及自動使用更快捷。
Gradle ? ?Gradle是一個自動化項目工具,是建立在Apache Maven和Apache Ant的功能上。雖然Gradle并不是的構(gòu)建工具(的是Maven,64%的Java開發(fā)人員會選擇它),但它的普及速度很快。它同時也可作為默認(rèn)的Android構(gòu)建開發(fā)工具。
SparkJava ? ?SparkJava是一款體形輕巧,功能強大的Web應(yīng)用框架。Spark可以通過一些繁瑣的XML配置來使用Spark框架編寫應(yīng)用程序。能讓我們花最少的精力來開發(fā)Java的Web應(yīng)用程序。是一款的Java web開發(fā)工具。
Clover ? ?Clover主要用于代碼覆蓋,可以幫助用于測試應(yīng)用程序的代碼。我們可以在IDE或持續(xù)集成系統(tǒng)中運行Clover。能夠讓測試的運行速度更快。是Java開發(fā)測試必不可少的工具之一。