工欲善其事,必先利其器,java程式設計師高效開發工具大匯集

軟帝學院 發佈 2020-01-05T23:23:23+00:00

java常用的開發工具。都說工欲善其事必先利其器,要想學好java這門語言,選擇一款好用順手的開發工具是必不可少的。另外面試java工作時開發工具的使用也是一個重要的考核點。


java常用的開發工具。都說工欲善其事必先利其器,要想學好java這門語言,選擇一款好用順手的開發工具是必不可少的。另外面試java工作時開發工具的使用也是一個重要的考核點。

要想全面了解java開發工具,我們首先需要先了解一下java程序的開發過程,通過這個過程我們能夠了解到java開發都需要用到那些工具。

一、首先我們先了解完整項目開發過程,如圖所示:



從上圖中我們能看到一個完整的java項目的開發包括很多的環節,每個環節都需要用到不同的開發工具。在實際java項目開發中,一般每個環節都有專門的人負責。比如:原型的設計有產品經理負責。

介面的美化有專門的美工負責。前端有專門的前端開發人員負責。我們的課程中主要涉及的是研發這個環節。

而研發主要工作就是根據項目的需求文檔設計系統架構、設計資料庫、編寫調試程序代碼。對於普通的碼農來說,主要的就是編寫和調試程序。



從上圖中我們可以看到:

1、要想編寫程序,需要一個能編寫原始碼的編輯工具。例如:Notepad++;

2、要想測試程序,需要一個編譯、執行工具。例如:JDK;

3、要想單獨測試一個單元,需要一個單元測試工具。例如:JUnit、TestNG;

4、要想編寫開發文檔,需要開發文檔編輯工具。例如:word、Excel、PPT;

5、要想分析設計程序,需要程序的分析設計工具。例如:StarUML; 6、要想方便管理源碼和版本升級,需要源碼管理和版本維護工具。例如:SVN,Git;

7、要想多個團隊協作開發或者項目用到很多的第三方類庫和Jar包。需要自動化構建工具。例如:Maven、gradle;

8、要想在一個工具中使用以上所有功能,需要用到集成開發工具IDE。例如:Eclipse;

大家看到這麼多工具是不是很頭疼。哈哈:) 所以說java開發入門門檻有點高。沒關係。後面的課程我會一個一個逐步給大家詳細介紹。 下面我們先簡單了解一下這些java開發常用工具。

一、java初學者常用源碼編輯工具介紹

java原始碼本質上其實就是普通的文本文件,所以理論上來說任何可以編輯文本文件的編輯器都可以作為我們的java代碼編輯工具。

比如:WINDOWS記事本、寫字板、word等。但是這些簡單工具沒有語法的高亮提示、自動完成等功能,這些功能的缺失會大大降低代碼的編寫效率。

所以學習開發時一般我們不會選用這些簡單文本編輯工具。我們一般會選用一些功能比較強大的類似記事本的工具,

比如: Notepad++、Sublime Text、editplus、ultraedit、vim等,具體介紹如下:

Notepad++


Notepad++是 Windows作業系統下的一套文本編輯器(軟體版權許可證: GPL),有完整的中文化接口及支持多國語言編寫的功能(UTF8技術)。Notepad++功能比 Windows 中的 Notepad(記事本)強大,除了可以用來製作一般的純文字說明文件,也十分適合編寫電腦程式代碼。

Notepad++ 不僅有語法高亮度顯示,也有語法摺疊功能,並且支持宏以及擴充基本功能的外掛模組。Notepad++是免費軟體,可以免費使用,自帶中文,支持所有主流的電腦程式語言。

editplus



EditPlus是一款由韓國 Sangil Kim (ES-Computing)出品的小巧但是功能強大的可處理文本、HTML和程序語言的Windows編輯器,你甚至可以通過設置用戶工具將其作為C,Java,Php等等語言的一個簡單的IDE。

EditPlus功能強大,介面簡潔美觀,且啟動速度快;中文支持比較好;支持語法高亮;支持代碼摺疊;支持代碼自動完成(但其功能比較弱),不支持代碼提示功能;配置功能強大,且比較容易,擴展也比較強。

ultraedit



UltraEdit 是一套功能強大的文本編輯器,可以編輯文本、十六進位、ASCII 碼,完全可以取代記事本,它是一款需要花費49.95美元的共享軟體.

它提供了友好介面的編程編輯器,支持語法高亮,代碼摺疊和宏,以及一大堆其他的功能,內置了對於HTML、PHP和JavaScript等語法的支持,可同時編輯多個文件,而且即使開啟很大的文件速度也不會慢。因為收費它的流行程度不及以上兩款軟體。

但是用它編輯十六進位時非常好用。另外在國內是否收費對我們影響不大:)。

Sublime Text



Sublime Text是由程式設計師Jon Skinner於2008年1月份所開發出來,它最初被設計為一個具有豐富擴展功能的Vim。

它是一款收費軟體,但是可以無限期試用,它是一個跨平台的編輯器,同時支持Windows、Linux、Mac OS X等作業系統,Sublime Text具有漂亮的用戶介面和強大的功能,例如代碼縮略圖,Python的插件,代碼段等。還可自定義鍵綁定,菜單和工具欄。

Sublime Text 的主要功能包括:拼寫檢查,書籤,完整的 Python API , Goto 功能,即時項目切換,多選擇,多窗口等等。它目前非常流行的一款編輯器,特別是前端開發,基本成了標配。

vim



im是從 vi 發展出來的一個文本編輯器。代碼補全、編譯及錯誤跳轉等方便編程的功能特別豐富,在程式設計師中被廣泛使用,和Emacs並列成為類Unix系統用戶最喜歡的文本編輯器。

目前Vim已經有各主流系統的版本,但因為學習入門難度比較大,因此在windows平台一直沒有流行起來。但是在類Unix系統非常流行。儘管vim較vi已經改良了不少,但是初次使用還是會一頭霧水,不知如何操作,所以學習vim要首先過2關。

第一關是理解vim的設計思路,vim設計之初就是整個文本編輯都用鍵盤而非滑鼠來完成,鍵盤上幾乎每個鍵都有固定的用法。第二關是命令關,vim有過百條命令對應編輯的需要,如果能熟練使用vim這些命令,編輯速度會比滑鼠要快很多。

二、java編譯執行工具介紹

以上工具的主要功能是編寫java原始碼,要想編譯、執行編寫的java代碼,我們還需要一個編譯和執行的工具。也就是java官方提供的JDK(Java Development Kit),也叫java開發工具包。

關於JDK的安裝與配置。我們下一節專門講解。在這我們簡單了解一下就行了。

JDK

JDK是 Java 語言的軟體開發工具包,JDK是整個java開發的核心,它包含了JAVA的運行環境,JAVA工具和JAVA基礎的類庫等。當我們編寫好java源碼後,使用JDK提供的java工具來編譯、執行java程序。所以要做java開發,首先就是要在開發電腦上安裝JDK。下節課我們專門介紹JDK的安裝與配置。

三、java單元測試工具介紹

單元測試(模塊測試)是開發者編寫的一小段代碼,用於檢驗被測代碼的一個很小的、很明確的功能是否正確。通常而言,一個單元測試是用於判斷某個特定條件(或者場景)下某個特定函數的行為是否合理正確。

例如:是在現實世界中,某公司為神州十一號生產了一個零件,必須要單獨測試這個零件是否有問題。如果單個零件都不測試。等到都集成到產品中以後再測試。

遇到問題往往會找不到原因出在那裡,會造成非常大的損失。所以要把所有問題在零件集成到產品以前就解決。這就是單元測試。

JUnit


JUnit是一個Java語言的單元測試框架。它由Kent Beck和Erich Gamma建立,逐漸成為源於Kent Beck的sUnit的xUnit家族中最為成功的一個。 JUnit有它自己的JUnit擴展生態圈。多數Java的開發環境都已經集成了JUnit作為單元測試的工具。

JUnit是由 Erich Gamma 和 Kent Beck 編寫的一個回歸測試框架(regression testing framework)。Junit測試是程式設計師測試,即所謂白盒測試,因為程式設計師知道被測試的軟體如何(How)完成功能和完成什麼樣(What)的功能。

Junit是一套框架,繼承TestCase類,就可以用Junit進行自動測試了。

TestNG


TestNG即Testing, Next Generation,下一代測試技術,它是一個測試 Java 應用程式的新框架。是一套根據JUnit 和NUnit思想而構建的利用註解來強化測試功能的一個測試框架,即可以用來做單元測試,也可以用來做集成測試。TestNG 不僅確實強大、創新、可擴展、靈活。

TestNG是一個設計用來簡化廣泛的測試需求的測試框架。由於設計目標的不同,對比junit的只適合用於單元測試,TestNG無疑走的更遠。

四、java源碼管理與版本控制工具

java項目一般都是團隊開發,當多人共同編寫一個項目的時候。代碼的整合就需要用到專門的源碼管理工具了。另外java項目版本的不斷更新,也需要版本的管理。

所以源碼管理與版本控制工具也是每個java程式設計師必須要熟練掌握的。目前比較流行的java版本控制工具主要有svn、git這兩款軟體。這兩種工具也是每個java程式設計師必須要熟練掌握的。

SVN


SVN是Subversion的簡稱,是一個開放原始碼的版本控制系統,相較於RCS、CVS,它採用了分支管理系統,它的設計目標就是取代CVS。網際網路上很多版本控制服務已從CVS遷移到Subversion。

說得簡單一點SVN就是用於多個人共同開發同一個項目,共用資源的目的。SVN的缺陷是過分依賴網絡,不適合分布式開發。

使用svn的工作流程如下:

1、早上從從伺服器下載項目組最新代碼。

2、進入自己的分支,進行工作,每隔一個小時向伺服器自己的分支提交一次代碼(很多人都有這個習慣。因為有時候自己對代碼改來改去,最後又想還原到前一個小時的版本,或者看看前一個小時自己修改了哪些代碼,就需要這樣做了)。

3、下班時間快到了,把自己的分支合併到伺服器主分支上,一天的工作完成,並反映給伺服器。

Git


Git是一個開源的分布式版本控制系統,可以有效、高速的處理從很小到非常大的項目版本管理。Git 是 Linus Torvalds 為了幫助管理 Linux 內核開發而開發的一個開放源碼的版本控制軟體。

與常用的版本控制工具 CVS, Subversion 等不同,它採用了分布式版本庫的方式,不必伺服器端軟體支持(ps:這得分是用什麼樣的服務端,使用http協議或者git協議等不太一樣。

並且在push和pull的時候和伺服器端還是有交互的。),使原始碼的發布和交流極其方便,目前GIT已經可以在windows下使用,主要方法有

二:msysgit和Cygwin。Cygwin和Linux使用方法類似,Windows版本的GIT提供了友好的GUI(圖形介面),安裝後很快可以上手使用。

五、自動化構建工具

一個大型的java項目的開發往往需要加載很多的各式各樣的第三方jar包依賴,這時就需要專門工具來維護這些繁雜的jar包,否則各個jar包的版本問題,依賴問題會讓你頭很大,當多個團隊協作開發時,項目的標準框架配置也需要能夠快速在不同團隊之間複製,另外項目從創建、開發、測試、發布的整個項目生命周期也需要專門的工具來維護。

自動化構建工具就是為了解決以上這些問題的。目前比較主流的自動化構建工具主要有:Maven、gradle、Ant等。其中Ant已經走下坡路,除了維護以前的老項目以外,已經基本沒有公司用了。

過去幾年中Maven已經成為java項目的事實構建工具,沒有之一。而近兩年Gradle獲得越來越多的人使用,分走了不少Maven的用戶。在這我們主要了解一下Maven和gradle。

Maven


Maven是一個採用純Java編寫的開源項目管理工具。它包含了一組標準集合,一個項目生命周期(Project Lifecycle),一個依賴管理系統(Dependency Management System),和用來運行定義在生命周期階段(phase)中插件(plugin)目標(goal)的邏輯。

Maven採用了一種被稱之為project object model (POM)概念來管理項目,所有的項目配置信息都被定義在一個叫做POM.xml的文件中,通過該文件,Maven可以管理項目的整個生命周期,包括編譯,構建,測試,發布,報告等等。

gradle



Gradle是一個基於Apache Ant和Apache Maven概念的項目自動化建構工具。它使用一種基於Groovy的特定領域語言(DSL)來聲明項目設置,拋棄了基於XML的各種繁瑣配置。面向Java應用為主。當前其支持的語言限於Java、Groovy和Scala,計劃未來將支持更多的語言。

和Maven一樣,Gradle只是提供了構建項目的一個框架,真正起作用的是Plugin。Gradle在默認情況下為我們提供了許多常用的Plugin,其中包括有構建Java項目的Plugin,還有War,Ear等。與Maven不同的是,Gradle不提供內建的項目生命周期管理,只是java Plugin向Project中添加了許多Task,這些Task依次執行,為我們營造了一種如同Maven般項目構建周期。

六、java集成開發工具介紹

初學java為了能更好的掌握java代碼的編寫,我們一般會選用一款高級記事本類的工具作為開發工具, 而實際項目開發時,更多的還是選用集成IDE做為開發工具,

比如當下最流行的兩款工具:Eclipse、IDEA,所謂集成IDE就是把代碼的編寫、調試、編譯、執行都集成到一個工具中了,不用單獨在為每個環節使用工具。對於這兩款軟體近些年廣大網友一直有爭議。

有說IDEA最流行的,也有說eclipse最流行的。實際情況估計沒人能說的清。大家在學習的時候,這兩款軟體都嘗試使用使用吧。

具體介紹如下:

Eclipse

Eclipse是一個開放源碼的項目,是著名的跨平台的自由集成開發環境(IDE),最初主要用來Java語言開發,後來通過安裝不同的插件

Eclipse可以支持不同的計算機語言,比如C++和Python等開發工具。Eclipse的本身只是一個框架平台,但是眾多插件的支持使得Eclipse擁有其他功能相對固定的IDE軟體很難具有的靈活性。

許多軟體開發商以Eclipse為框架開發自己的IDE。目前最新版本已經到了4.5版,代號為Mars。基於Eclipse平台開發並集成了很多插件的myeclipse也有很多人在使用。但因myeclipse屬於收費軟體,所以大公司很少使用。

IDEA


IDEA 全稱 IntelliJ IDEA,是java語言開發的集成環境,IntelliJ在業界被公認為最好的java開發工具之一,尤其在智能代碼助手、代碼自動提示、重構、J2EE支持、各類版本工具(git、svn、github等)、JUnit、CVS整合、代碼分析、 創新的GUI設計等方面的功能可以說是超常的。

IDEA是JetBrains公司的產品,這家公司總部位於捷克共和國的首都布拉格,開發人員以嚴謹著稱的東歐程式設計師為主。它的旗艦版本還支持HTML,CSS,PHP,MySQL,Python等。免費版只支持Java等少數語言。

七、java項目分析與設計工具介紹

由於面向對象技術的發展,傳統的java項目的開發過程需要做很多的面向對象的分析和設計。整個分析和設計過程中,需要專業的工具來描述和記錄分析設計的結果。也需要專門的工具來協助理清分析的思路,UML就是這樣的工具。

UML的全稱是,統一建模語言(UML,UnifiedModelingLanguage),它是面向對象軟體的標準化建模語言。UML因其簡單、統一的特點,而且能表達軟體設計中的動態和靜態信息,目前已成為可視化建模語言的工業標準。

在軟體開發過程中,統一建模語言可以在整個設計周期中使用,幫助設計者縮短設計時間,減少改進的成本,使軟硬體分割最優。

需要注意的是:在現在流行的敏捷開發中。UML的地位遠不如以前重要了。另外資料庫的分析與設計也需要專門的工具來描述和理清資料庫之間的關係。下面我們就來簡單介紹兩款這樣的軟體。

Staruml

StarUML是一款開放源碼的UML開發工具,是由韓國公司主導開發出來的產品,是一種創建UML類圖,生成類圖和其他類型的統一建模語言(UML)圖表的工具。

它可以繪製常用的9種UML圖,而且完全免費,軟體也比較小,是非常好用的一款軟體,不過作者已經很多年不更新了。由此軟體延伸一款新的軟體:StarUML2。但這款新的軟體屬於收費軟體。

PowerDesigner

PowerDesigner最初由Xiao-Yun Wang(王曉昀)在SDP Technologies公司開發完成。PowerDesigner是Sybase的企業建模和設計解決方案,採用模型驅動方法,將業務與IT結合起來,可幫助部署有效的企業體系架構,並為研發生命周期管理提供強大的分析與設計技術。

PowerDesigner獨具匠心地將多種標準數據建模技術(UML、業務流程建模以及市場領先的數據建模)集成一體,並與 .NET、WorkSpace、PowerBuilder、Java™、Eclipse 等主流開發平台集成起來,從而為傳統的軟體開發周期管理提供業務分析和規範的資料庫設計解決方案。此外,它支持60多種關係資料庫管理系統(RDBMS)版本。

PowerDesigner運行在Microsoft Windows平台上,並提供了Eclipse插件。

最後,開發這麼多年我也總結了一套學習Java的資料,如果你在技術上面想提升自己的話,可以關注我,私信發送領取資料或者在評論區留下自己的聯繫方式,有時間記得幫我點下轉發讓跟多的人看到哦。


關鍵字: