1. 程式人生 > >Java基礎學習總結(70)——開發Java專案常用的工具彙總

Java基礎學習總結(70)——開發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++

跟老楊學java系列(四) java常用開發工具介紹

Notepad++是 Windows作業系統下的一套文字編輯器(軟體版權許可證: GPL),有完整的中文化介面及支援多國語言編寫的功能(UTF8技術)。Notepad++功能比 Windows 中的 Notepad(記事本)強大,除了可以用來製作一般的純文字說明檔案,也十分適合編寫計算機程式程式碼。Notepad++ 不僅有語法高亮度顯示,也有語法摺疊功能,並且支援巨集以及擴充基本功能的外掛模組。Notepad++是免費軟體,可以免費使用,自帶中文,支援所有主流的計算機程式語言。

editplus

跟老楊學java系列(四) java常用開發工具介紹

EditPlus是一款由韓國 Sangil Kim (ES-Computing)出品的小巧但是功能強大的可處理文字、HTML和程式語言的Windows編輯器,你甚至可以通過設定使用者工具將其作為C,Java,Php等等語言的一個簡單的IDE。EditPlus功能強大,介面簡潔美觀,且啟動速度快;中文支援比較好;支援語法高亮;支援程式碼摺疊;支援程式碼自動完成(但其功能比較弱),不支援程式碼提示功能;配置功能強大,且比較容易,擴充套件也比較強。

ultraedit

跟老楊學java系列(四) java常用開發工具介紹

UltraEdit 是一套功能強大的文字編輯器,可以編輯文字、十六進位制、ASCII 碼,完全可以取代記事本,它是一款需要花費49.95美元的共享軟體,它提供了友好介面的程式設計編輯器,支援語法高亮,程式碼摺疊和巨集,以及一大堆其他的功能,內建了對於HTML、PHP和JavaScript等語法的支援,可同時編輯多個檔案,而且即使開啟很大的檔案速度也不會慢。因為收費它的流行程度不及以上兩款軟體。但是用它編輯十六進位制時非常好用。另外在國內是否收費對我們影響不大:)。

Sublime Text

跟老楊學java系列(四) java常用開發工具介紹

Sublime Text是由程式設計師Jon Skinner於2008年1月份所開發出來,它最初被設計為一個具有豐富擴充套件功能的Vim。它是一款收費軟體,但是可以無限期試用,它是一個跨平臺的編輯器,同時支援Windows、Linux、Mac OS X等作業系統,Sublime Text具有漂亮的使用者介面和強大的功能,例如程式碼縮圖,Python的外掛,程式碼段等。還可自定義鍵繫結,選單和工具欄。Sublime Text 的主要功能包括:拼寫檢查,書籤,完整的 Python API , Goto 功能,即時專案切換,多選擇,多視窗等等。它目前非常流行的一款編輯器,特別是前端開發,基本成了標配。

vim

跟老楊學java系列(四) java常用開發工具介紹

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
跟老楊學java系列(四) java常用開發工具介紹

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

三、java單元測試工具介紹

單元測試(模組測試)是開發者編寫的一小段程式碼,用於檢驗被測程式碼的一個很小的、很明確的功能是否正確。通常而言,一個單元測試是用於判斷某個特定條件(或者場景)下某個特定函式的行為是否合理正確。例如:是在現實世界中,某公司為神州十一號生產了一個零件,必須要單獨測試這個零件是否有問題。如果單個零件都不測試。等到都整合到產品中以後再測試。遇到問題往往會找不到原因出在那裡,會造成非常大的損失。所以要把所有問題在零件整合到產品以前就解決。這就是單元測試。

JUnit跟老楊學java系列(四) java常用開發工具介紹

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

跟老楊學java系列(四) java常用開發工具介紹

TestNG即Testing, Next Generation,下一代測試技術,它是一個測試 Java 應用程式的新框架。是一套根據JUnit 和NUnit思想而構建的利用註解來強化測試功能的一個測試框架,即可以用來做單元測試,也可以用來做整合測試。TestNG 不僅確實強大、創新、可擴充套件、靈活。TestNG是一個設計用來簡化廣泛的測試需求的測試框架。由於設計目標的不同,對比junit的只適合用於單元測試,TestNG無疑走的更遠。

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

java專案一般都是團隊開發,當多人共同編寫一個專案的時候。程式碼的整合就需要用到專門的原始碼管理工具了。另外java專案版本的不斷更新,也需要版本的管理。所以原始碼管理與版本控制工具也是每個java程式設計師必須要熟練掌握的。目前比較流行的java版本控制工具主要有svn、git這兩款軟體。這兩種工具也是每個java程式設計師必須要熟練掌握的。本節我們只是簡單介紹一下,後面的課程我們會拿出專門的一節來講解這些工具的具體使用。

SVN

跟老楊學java系列(四) java常用開發工具介紹

SVN是Subversion的簡稱,是一個開放原始碼的版本控制系統,相較於RCS、CVS,它採用了分支管理系統,它的設計目標就是取代CVS。網際網路上很多版本控制服務已從CVS遷移到Subversion。說得簡單一點SVN就是用於多個人共同開發同一個專案,共用資源的目的。SVN的缺陷是過分依賴網路,不適合分散式開發。使用svn的工作流程如下:1、早上從從伺服器下載專案組最新程式碼。2、進入自己的分支,進行工作,每隔一個小時向伺服器自己的分支提交一次程式碼(很多人都有這個習慣。因為有時候自己對程式碼改來改去,最後又想還原到前一個小時的版本,或者看看前一個小時自己修改了哪些程式碼,就需要這樣做了)。3、下班時間快到了,把自己的分支合併到伺服器主分支上,一天的工作完成,並反映給伺服器。

Git

跟老楊學java系列(四) java常用開發工具介紹

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

跟老楊學java系列(四) java常用開發工具介紹

Maven是一個採用純Java編寫的開源專案管理工具。它包含了一組標準集合,一個專案生命週期(Project Lifecycle),一個依賴管理系統(Dependency Management System),和用來執行定義在生命週期階段(phase)中外掛(plugin)目標(goal)的邏輯。Maven採用了一種被稱之為project object model (POM)概念來管理專案,所有的專案配置資訊都被定義在一個叫做POM.xml的檔案中,通過該檔案,Maven可以管理專案的整個生命週期,包括編譯,構建,測試,釋出,報告等等。

gradle

跟老楊學java系列(四) java常用開發工具介紹

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

跟老楊學java系列(四) java常用開發工具介紹

Eclipse是一個開放原始碼的專案,是著名的跨平臺的自由整合開發環境(IDE),最初主要用來Java語言開發,後來通過安裝不同的外掛Eclipse可以支援不同的計算機語言,比如C++和Python等開發工具。Eclipse的本身只是一個框架平臺,但是眾多外掛的支援使得Eclipse擁有其他功能相對固定的IDE軟體很難具有的靈活性。許多軟體開發商以Eclipse為框架開發自己的IDE。目前最新版本已經到了4.5版,代號為Mars。基於Eclipse平臺開發並集成了很多外掛的myeclipse也有很多人在使用。但因myeclipse屬於收費軟體,所以大公司很少使用。

IDEA

跟老楊學java系列(四) java常用開發工具介紹

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

跟老楊學java系列(四) java常用開發工具介紹

StarUML是一款開放原始碼的UML開發工具,是由韓國公司主導開發出來的產品,是一種建立UML類圖,生成類圖和其他型別的統一建模語言(UML)圖表的工具。它可以繪製常用的9種UML圖,而且完全免費,軟體也比較小,是非常好用的一款軟體,不過作者已經很多年不更新了。由此軟體延伸一款新的軟體:StarUML2。但這款新的軟體屬於收費軟體。

PowerDesigner

跟老楊學java系列(四) java常用開發工具介紹

PowerDesigner最初由Xiao-Yun Wang(王曉昀)在SDP Technologies公司開發完成。PowerDesigner是Sybase的企業建模和設計解決方案,採用模型驅動方法,將業務與IT結合起來,可幫助部署有效的企業體系架構,併為研發生命週期管理提供強大的分析與設計技術。PowerDesigner獨具匠心地將多種標準資料建模技術(UML、業務流程建模以及市場領先的資料建模)整合一體,並與 .NET、WorkSpace、PowerBuilder、Java™、Eclipse 等主流開發平臺整合起來,從而為傳統的軟體開發週期管理提供業務分析和規範的資料庫設計解決方案。此外,它支援60多種關係資料庫管理系統(RDBMS)版本。PowerDesigner執行在Microsoft Windows平臺上,並提供了Eclipse外掛