1. 程式人生 > >三大高手,哪個JAVA程式設計IDE最適合你?

三大高手,哪個JAVA程式設計IDE最適合你?

Java是一種可以撰寫跨平臺應用軟體的面向物件的程式設計語言。Java 技術具有卓越的通用性、高效性、平臺移植性和安全性,廣泛應用於PC、資料中心、遊戲控制檯、科學超級計算機、行動電話和網際網路,同時擁有全球最大的開發者專業社群。

給你java學習路線:html-css-js-jq-javase-資料庫-jsp-servlet-Struts2-hibernate-mybatis-spring4-springmvc-ssh-ssm

每個Java開發人員都需要一個程式碼編輯器或IDE,可以幫助我們在編寫Java、使用類庫和框架的時候處理一些複雜、麻煩的場景,最常見的就是糾錯。哪個編輯器或IDE最適合你,取決於幾件事情:專案的性質,你在組織中的角色,團隊使用什麼開發過程,程式設計師的水平和技能。 另外考慮的是團隊是否對工具進行了標準化,以及個人喜好。

最常用於伺服器端Java開發的三個IDE是IntelliJ IDEA,Eclipse和NetBeans。 然而,這些並不是唯一的選擇,也是時候也可以考慮一些輕量級的IDE。

下面通過在MacBook Pro上,對幾個開源專案使用IntelliJ IDEA Ultimate 2016.2,Eclipse Neon Java EE和NetBeans 8.1 Java EE對比一下三種IDE。

基本問題:你需要Java IDE幫你做什麼事情

首先,你可能需要IDE支援JAVA 8,Scala,Groovy,其他JVM語言。還需要支援主要的應用伺服器和最流行的Web框架,包括Spring MVC,JSF,Struts,GWT,Play,Wicket,Grails和Vaadin。IDE應與開發團隊使用的任何構建和版本控制系統相容,例如Ant,Maven和/或Gradle,以及Git,SVN,CVS,Mercurial或Bazaar。

更多一點的要求,包括能處理客戶端和資料庫層,支援嵌入式JavaScript,TypeScript,HTML,SQL,JavaServer Pages,Hibernate和Java Persistence API。

最後,Java IDE應該可以讓你輕鬆編輯,構建,除錯和測試系統。理想情況下,不僅可以完成智慧程式碼,還可以重構和做程式碼質量檢測。如果你採用了測試驅動的開發模式,IDE還需要支援你的測試框架。如果你的團隊使用CI或BUG跟蹤系統,則IDE最好連線到它們。如果你需要部署到容器和雲上並進行除錯,則IDE應該對此提供幫助。

IntelliJ IDEA

IntelliJ IDEA是首屈一指的Java IDE,兩個版本:免費的社群版和付費的終極版。

社群版可用於JVM和Android開發。支援Java,Kotlin,Groovy,Scala;Android;Maven,Gradle,SBT; Git,SVN,Mercurial和CVS。終極版用於Web和企業開發的除了Git,SVN,Mercurial和CVS之外,還支援Perforce,ClearCase和TFS;JavaScript和TypeScript;Java EE,Spring,GWT,Vaadin,Play,Grails等框架; 還有資料庫工具。

商業的終極版通過提高程式設計師的生產力來獲得收益。對於學生,老師和開放原始碼開發者而言都是免費的。

IntelliJ IDEA深入瞭解你的程式碼,開發人員的人體工程學,有內建的開發人員工具,通曉數種語言的程式設計經驗。

小編推薦一個學Java的學習裙【 6肆2-4陸1-3凌9 】,無論你是大牛還是小白,是想轉行還是想入行都可以來了解一起進步一起學習!裙內有開發工具,很多幹貨和技術資料分享!

IntelliJ IDEA用類似lint的方式對Java程式碼做了靜態分析,顯示了一些警告和建議。 可以通過點選它們展開這些,如下所示。在許多情況下,還可以獲得如何快速修復操作的選擇列表。

深入分析程式碼

Java編輯器通常都會給出語法著色和簡單的程式碼完成提示。除此之外,IDEA還能提供“智慧完成”,這意味著它可以彈出在當前上下文中的最可能的相關符號或操作列表,並且按你的個人使用頻率排列。更智慧的是“鏈式完成”,它顯示的是適合當前上下文的方法或getter列表。IDEA還能幫助完成靜態成員或常量,import語句的匯入。

Java程式碼經常以字串的形式,把其他語言包括在程式碼中。IDEA可以將SQL,XPath,HTML,CSS或JavaScript程式碼的片段注入Java字串文字。重構的時候,IDEA也能充分考慮到這些表示其他語言的字串。比如,如果在JPA語句中重新命名一個類,IDEA也能更新相應的實體類和JPA表示式。

當重構一段程式碼時,如果我們在其他地方也有這段程式碼的拷貝的話,通常我們也需要對這些拷貝進行重構。 IDEA Ultimate(終極版)可以檢測重複和類似的片段,並一次性將同樣的的重構應用於這些拷貝。

IntelliJ IDEA在讀取程式碼以及你輸入程式碼的時候,就在分析這些程式碼。它提供了一些指示來指出可能的問題。如果需要的話,也會列出快速修復這些問題的建議列表。

開發人員人體工程學

IntelliJ設計IDEA的時候,充分考慮了開發人員的工作流程中很重要的一點,也就是“在區域中”。上圖所示的專案工具視窗通過簡單的滑鼠點選就會從檢視中消失,你可以專注於程式碼編輯器。編輯時要做的一切都具有鍵盤快捷鍵,包括在彈出視窗中顯示一些符號定義。學習捷徑確實需要時間和實踐當然不知道快捷方式,開發人員也可以輕鬆快速地學習使用IDEA。

IDEA的偵錯程式設計非常友好。變數值在編輯視窗的右邊展示,靠近相對應的程式碼。當時某個變數狀態改變的時候,會高亮顯示。

IDEA還集成了構建工具,單元測試的執行和覆蓋率檢查工具,以及內建的終端視窗。IntelliJ沒有自己的效能分析工具,但它通過外掛來支援。這些包括由前IntelliJ主要開發人員建立的YourKit和VisualVM。IntelliJ IDEA為大多數的版本控制系統提供了介面,包括Git,SVN,Mercurial,CVS,Perforce和TFS。你可以在IDE中管理所有的程式碼變化。IntelliJ IDEA還有個外掛,可以把原始碼塊中的最後一次更改將作為註釋顯示在編輯器視窗中。

IntelliJ IDEA支援所有主流的JVM應用伺服器,並且可以在伺服器中進行部署和除錯,為Enterprise Java開發人員解決一個痛點。IDEA通過新增Docker工具視窗的外掛來支援Docker。

多語言程式設計

IDEA已經擴充套件了針對Spring,Java EE,Grails,Play,Android,GWT,Vaadin,Thymeleaf,Android,React,AngularJS等框架的編碼協助。並非所有這些都是Java框架。除Java之外,IDEA也能理解許多其他語言,包括Groovy,Kotlin,Scala,JavaScript,TypeScript和SQL。如果您需要更多的話,目前有大約19種IntelliJ語言外掛,包括R,Elm和D的外掛。

Eclipse

Eclipse是最流行的Java IDE,免費且開源。主要用Java編寫,但同時它的外掛架構允許Eclipse以其他語言進行擴充套件。Eclipse起源於2001年,是一個IBM專案,目的是開發一個可移植的基於Java的IDE來替代基於Smalltalk的IBM Visual Age系列IDE。該專案的重要目標是針對Microsoft,要打敗微軟在工具市場上的領導地位,引領大家到Java開發上來,因此要做的事情是要吞噬微軟的市場,這就叫“Eclipse”。在中文裡面,eclipse作名詞用就是“月蝕”,“日蝕”的意思。做動詞講,就是“使黯然失色”,“矇蔽”的意思。

Java的可移植性幫助Eclipse成功實現跨平臺,Eclipse可以執行在Linux,Mac OS X,Solaris,Windows等。Java標準視窗小部件工具包(SWT)部分負責了Eclipse的外觀UI。同樣地,Eclipse也是它的效能依賴於JVM。早年因為硬體的低效能和JVM低版本,Eclipse有執行慢的名聲。但即使在今天,還是可以感覺到慢,特別是當裝了許多外掛再進行更新的時候。

Eclipse中的一部分開銷是因為內建的增量編譯器。每當它載入一個檔案,並且每當你更新你的程式碼,它就會執行。其實總的來看,這是一個很好的事情,因為但你在輸入程式碼的時候可以及時提供錯誤提示。

一個Eclipse Java專案在獨立於構建系統之外,維護著專案的內容模型。這個模型包含有關Java的類層次結構,引用和宣告的資訊。通過這個模型可以支援多個編輯和導航助手以及大綱檢視。

Eclipse安裝的時候,通常需要安裝很多其他的包。包括一個最小化的Eclipse SDK和必要的外掛。安裝外掛的時候很容易就會引入衝突,特別是新人。

從左到右,我們在Eclipse工作臺中看到了四個窗格:Package Explorer、Java編輯器、Java類大綱和問題列表。這個圖中載入到Eclipse中的專案是JUnit測試框架。窗格可以很容易地重新排列。

編輯、瀏覽、重構、除錯

第一次使用Eclipse的人可能會感到困惑。你的第一個任務是適應Eclipse的工作空間、透檢視和檢視的概念體系,這些概念又跟你安裝的外掛有關。比如Java伺服器開發,你可能使用Java,Java EE,瀏覽檢視;package explorer檢視;除錯透檢視;團隊同步視角;Web工具;資料庫開發檢視;資料庫除錯檢視。

外掛生態系統是Eclipse的優勢之一,也是有時候造成問題的原因之一。Eclipse市場中目前包含1700多個解決方案,提供了數以千計的外掛。這些外掛可能會,也可能不會像期望的那樣工作(因為彼此的衝突)。儘管如此,Eclipse外掛仍然支援超過100種程式語言和近200個應用程式開發框架。大多數主流的Java伺服器也支援;如果你在Eclipse定義一個新伺服器連線,你會看到一個供應商列表。下面你會發現大約30個應用伺服器,包括9個版本的Apache Tomcat。商業公司傾向於把他們的產品在一起。例如在Red Hat JBoss中介軟體下面只有一個條目,包括WildFly,EAP伺服器工具以及JBoss。

在Eclipse中,通常有不止一種方法來完成一個任務。例如,你可以使用package explorer或Java瀏覽檢視來瀏覽程式碼。選擇哪個方式取決於你自己的體驗感受。

Java搜尋支援查詢Java包、型別、方法、欄位。您還可以使用快速訪問搜尋,並使用快速檢視來彈出類大綱之類的內容。

新增方法和生成類都有錯誤註釋和內容輔助支援(其實其他兩個IDE也支援)。可以從程式碼模板生成常見的程式碼模式,而Eclipse可以自動生成和組織import語句。在Eclipse中,重構支援23個操作,從常見的重新命名操作到更晦澀的轉換,從Martin Fowler的書中可以得到。重構不僅可以互動式地執行,還可以從重構指令碼中進行。

Eclipse支援本地和遠端除錯(其實其他兩個IDE也支援),假設您使用的是支援遠端除錯的JVM。除錯的過程是標準的方式:設定斷點,然後在除錯檢視的一個選項卡中檢視變數。

Eclipse提供了豐富的幫助和文件。但經常會發現,文件中的圖片可能並不匹配當前的版本,或者快捷鍵跟幫助中說的不太一樣。這可能是開源專案的常見問題:文件會延遲幾個月甚至幾年才更新。Eclipse的生態系統非常龐大,所以在文件及時性上問題不小。

NetBeans

NetBeans的履歷挺完整的。最早是一個大學生專案,於1996年在布拉格誕生。在1997年成為一個商業產品,在1999年被Sun收購,然後在2000年開源。執行在Windows、Mac OS X、Linux和Solaris上。還有一個可移植的子集,可在支援Java的其他系統上執行。它的Java EE發行版本包含JavaScript和HTML支援、GlassFish和Tomcat,不支援PHP,C / C++ / Fortran,Groovy。在“All”下載包中有Grails。NetBeans也有外掛,比Eclipse少,但是不像Eclipse的外掛,NetBeans的外掛不太可能相互干擾。

Oracle仍然在管理和貢獻NetBeans開放原始碼專案,Oracle認為NetBeans是Java 8的官方IDE。(但是who care? )

NetBeans確實對Java 8有很好的支援,並且可以將舊程式碼轉換為基於Java 8。它的編輯器、程式碼分析器和轉換器可以幫助您升級您的應用程式,使用新的Java 8語言結構,如lambda、函式操作和方法引用。NetBeans 8中的JavaScript外掛改進了對Node.js,以及一些新的JavaScript工具的支援,如Gulp和Mocha,還改進了對JavaScript Nashorn引擎的支援。

小編推薦一個學Java的學習裙【 6酒4-6肆6-0巴3 】,無論你是大牛還是小白,是想轉行還是想入行都可以來了解一起進步一起學習!裙內有開發工具,很多幹貨和技術資料分享!

這是NetBeans基於Maven的專案,與IntelliJ IDEA在圖裡開啟的是同一個專案。請注意上下文選單和它的重構子選單中的功能。

“檢查與變換”工具使你能夠在程式碼庫中執行檢查,同時自動修復程式碼。但你最好在執行自動修復之前,確保已經檢查了所有程式碼,併成功執行所有的單元測試。被自動“修復”可能會導致程式碼被還原或修復成你可能不期望的結果。

構建、除錯、調優

NetBeans對Maven和Ant有很好的內建支援,還有一個Gradle的外掛。已有的Maven專案現在被視為“本地”專案,這意味著只需開啟它們,而不是匯入它們。NetBeans還包含一個Maven依賴關係的性感(有用的)圖形檢視。

能感知語言的NetBeans編輯器在你輸入程式碼的時候會檢查錯誤,並通過彈出視窗的文件和智慧的程式碼輔助完成功能來幫助你。NetBeans在做檢查和給予提示的時候比Eclipse的停頓更少,比IntelliJ IDEA稍微多一些。NetBeans還提供全面的重構工具,以允許你重建程式碼而不會中斷程式碼;執行原始碼分析;並提供豐富的提示,以幫助你快速修復或增強程式碼。 NetBeans包含一個用於Swing GUI的設計工具,以前稱為“Project Matisse”。

比較三大JAVA IDE

多年來,我個人依次使用了Eclipse、NetBeans和IntelliJ。每次換了IDE並熟悉之後,我都覺得我已經提高了工作效率。甚至有一次,我以為我已經堅定地轉向IntelliJ。然而,有時我不得不返回另一個Java IDE。比如Eclipse曾經是唯一支援Android的IDE開發。(目前官方Android IDE,Android Studio是基於IntelliJ IDEA。)

我有一些全職的Java程式設計師朋友,他們都聲稱使用了這三大IDE中的每一個。IntelliJ IDEA的使用者特別忠誠,就像忠誠於Visual Studio的 c++和c#程式設計師那樣。他們聲稱只需要幾周時間,生產率增長節約的成本就足夠支付一年的授權費用了。NetBeans和Eclipse使用者對他們的選擇也是非常忠誠的,他們中的一部分人想不明白為什麼有人會願意為IntelliJ付費。所以,程式設計師其實是很固執的。

推薦JAVA新人不要用Eclipse,儘管它是最受歡迎的JAVA IDE,卻有最陡峭的學習曲線。在日常使用和維護IDE隨時都有可能出現一些混亂或困擾。許多透檢視和檢視提供了各種各樣的功能,但是從一個角度切換到另一個視角可能會讓你感到不適應,干擾你的思路。有些從Eclipse轉IntelliJ的人宣稱IntelliJ沒有Eclipse用起來好用,其實只是操作習慣不同帶來的不適而已,特別是快捷鍵。

Eclipse擁有所有IDE中最大的外掛生態系統。但是很容易因為安裝了一組不相容的外掛,變得不可用。有時候不得不刪除Eclipse,用一個正式的發行包重新開始。

NetBeans對大多數人來說都很好,並且有一個很好的效能分析工具。我有時候會使用它,但我還是更喜歡IntelliJ IDEA終極版。

如果是沒有錢的屌絲,建議在NetBeans和IntelliJ IDEA社群版之間選擇。如果你編寫Java伺服器程式碼很少或根本沒有錢,NetBeans會是更好的選擇。如果你是學生或開源專案開發人員,你就有權免費或以一個折扣價使用IntelliJ IDEA終極版。

輕量級的JAVA IDE

當大多數人選擇IntelliJ,NetBeans或Eclipse,仍然存在一些情況下,你可能希望一個輕量級的IDE,甚至一個編輯器如Sublime Text、emacs或有Java支援的vim 。

假設需要一個輕量級IDE,可以考慮以下這些:

DrJava是一個免費的輕量級開發環境,用於編寫Java程式。Rice大學專門為學生設計的,目前已有超過200萬次下載。 DrJava旨在促進測試驅動的軟體開發。它包括智慧的程式編輯器,用於評估程式的互動面板,原始碼偵錯程式和單元測試工具。

BlueJ是為肯特大學(the University of Kent)為初學者設計的免費Java開發環境。 它由Oracle支援。 BlueJ具有比NetBeans或Eclipse等專業環境更小更簡單的介面,還有一本關於使用BlueJ學習OOP的大學教科書。

JCreator是Windows平臺的輕量級Java IDE,出於效能考慮以C++編寫。付費的Pro版本有一個偵錯程式,Ant支援和程式碼嚮導; 免費的LE版本沒有。

Eclipse Che是一個基於瀏覽器和雲的IDE以及程式設計師工作伺服器。Che支援Java與C ++,JavaScript,Python,PHP,Ruby和SQL。

基於專案的選擇Java IDE的建議

上面已經描述了三大Java IDE的顯著特徵,並提供了一些輕量級的替代方案。可以需要根據你個人開發需求和資源來衡量這些資訊,以決定哪個IDE最適合。除了個人考慮之外,還有基於專案的考慮。在許多情況下,使用與開發團隊其他部分相同的IDE比較好。但這也並不是一定必要的。我自己的團隊就同時使用Eclipse和IntelliJ IDEA。可以通過一些外掛來 保證統一的編碼風格等問題。使用前者的人就是上文中說的那種“想不明白為什麼有人會願意為IntelliJ付費” 的人。

如果專案託管在GitHub,那麼直接集成了GitHub的IDE能讓你的生活更美好一點。另外IDE對構建系統的支援也是類似。當然三大IDE對Ant, Maven, and Gradle對此支援都很好。

對開發框架的支援也是要考慮的一個因素。例如,IDE知道JPA語句與實體類和JPA表示式(比如IntelliJ),那麼你可能會花更少的時間在你JPA相關的程式碼。

與BUG跟蹤系統的整合也是一個因素。你可以通過使用web客戶端來訪問JIRA,但是如果可以直接從IDE檢視,會更爽。

結論

很多人會認為IntelliJ IDEA是Java ide中的凱迪拉克。雖然它不是像Eclipse或NetBeans那樣的免費,但我相信提高生產率的代價是值得的。對於剛剛起步的開發人員,或者那些不願意付費的開發人員,我推薦NetBeans在Eclipse之上。儘管Eclipse的外掛生態系統曾經讓它成為開發人員的首選,但是現在它已經變得笨拙,並且維護得很差。

輕量級的替代方案中包括兩個為學生設計的方案。這些都是值得嘗試的,如果你只是學習Java,如果你發現功能齊全的ide具有壓倒性優勢。如果你只是喜歡輕量級的開發環境,那麼上面說到的幾個都可以考慮。

❤提問/互動請留言,可直接在最底右下方"寫留言即可"

❤如果覺得寫得不錯請點選“訂閱”,每天更新全新的內容!

❤你們的喜歡和關注就是我最大的動力支撐!!!