IntelliJ IDEA是一個相對較新的Java IDE。它是我所使用過的(我用過大部分Java開發環境)Java開發環境中最為有用的一個。高度優化的IntelliJ IDEA使普通任務變得相當容易。
通常不是較大的標簽特性使一個產品真正有用。而是這些小的方面:裡面的許多小的細節使整個包無縫集成及樂於使用。
下面是我真正喜愛Idea的一些理由。
1、感知語法詞選擇
反復使用Ctrl-w使所選表達式逐步增大直到選取整個文件。但是這一點聽起來並不是很重要,它在與其它特性如“introduce variable”refactoring(“引入變量”重整)相結合使用時才真正好用。我可以把脫字符置於復雜表達式上,按Ctrl-w直到選取所需范圍然後按Ctrl-Alt-v為表達式引入一個新的變量。如果我要替換這個表達式的其他事件Idea甚至也可以自動做到。
2、多種導航形式
在一個工程裡,Idea有很多種方法用於轉換。除鼠標之外所有的命令都可以通過鍵盤實現(這一點對於像我這樣難以忍受不停地切換到鼠標的人來說絕對不錯)。Ctrl-n可以通過鍵入類名查找一個類。Ctrl-shift-n可以查找文件。Ctrl-e得到最近編輯的文件,通過鍵入文件名或者鼠標鍵選擇。命令不僅可以容易地在你的工程兩個視圖裡導航並且使整合操作變得輕而易舉。Alt-f1可以是你在任何一個其他視圖裡選擇當前文件。工程導航地方法太多在這兒不能全部列舉。所有命令沒必要像觀點一樣都給出概念。
3、本地歷史
開啟本地歷史,你源代碼中的每一個改變(在tool和externally裡)都被跟蹤。這個特性救了我很多次所以我推薦它。不同的地方在一個絕對漂亮的差異查看器裡高亮顯示出來。
4、靈活的JUnit支持
單元測試可以獨立運行。特殊的測試方法可以單獨拉出來獨立運行。Idea能夠在一個包或者工程裡自動運行所有測試而不需要手工啟動一個麻煩的測試套件。在GUI運行器裡的堆跡線上雙擊可以直接切換到源代碼的相應行。就我個人認為我更喜歡文本運行器。它不但秀美而且速度更快功能更多。
5、設計優良的整合支持
Idea支持很多整合功能。更重要的使它們設計的好容易使用。有一些你會一直使用,也有一些幾乎用不到。當你發現你需要他們時它們就成了一個大的時間節約器。
6、代碼助手
在Idea裡有一些真正強大的代碼編寫助手。在這裡我只能介紹給你一點它的好處。一個比較好的例子是“委托方法”助手。它允許你在你的類裡面為一個對象實例委托方法調用。它並不是你每天都使用的東西,但當你需要它的時候你就會發現自己節省了大量的時間。另一個例子是產生冗余代碼和等價特性。你會發現這是一個自己經常使用的特性。其他一些代碼助手特性為:產生Getters/Setters,產生構造器與“surround with…”(譯者注:被什麼保護)等特性。
7、靈活的代碼重格式化
關於代碼怎樣重格式化的選擇有許多。它可以為每一個工程單獨設置,所以沒必要擔心自己是否必須支持不同的代碼標准。重格式化一個文件或者一個完整的工程眨眼間就可以完成。
8、XML支持
Idea支持XML中的代碼實現。如果沒有定義圖表或者DTD(文件類型定義)Idea將基於文件中已經包含的來實現。否則可能基於為文件定義的圖表或者DTD來實現。Idea同時還會校正XML。
9、直觀簡潔的GUI
更為好玩的是每一個程序中的函數都可以通過鍵盤訪問的到。在一個開發工具裡這是應該有的但可悲的是大多數IDE對鍵盤導航並不注意。
為了完成工作不必要在不同的視圖之間切換,也不必要在不同的窗口之間選擇了。
10、與文件系統自動同步
不管你的IDE是多麼優秀,通常都需要在工具之外作一些工作。Idea在這一點上做的很好。大多數工程都可以在Idea裡不用改變他們的結構就可以使用。Idea還可以檢查文件在外部的更改情況。這不需要人工刷新以告訴Idea一個文件已被更改。
11、定制的鍵盤映射
Idea自帶的默認鍵盤映射非常有用。如果有時需要改變也很容易做到。有些鍵也可以設置阻擋比如外來的工具與Ant目標等。
12、動態的錯誤高亮顯示
在鍵碼時Java代碼,XML與Java文檔標簽被動態解析,錯誤也會被報告。Ant建立文件甚至可為Ant工程句法提供額外支持。
13、檢查
運行代碼檢查以報告大量的代碼中潛在的錯誤點。它可以編制成腳本以作為一個批量工作運行,結果也可以以網頁的形式提交。
14、完全理解JSP
Idea理解JSP的結構。作用於普通Java代碼的眾多功能同樣適用於JSP(比如整合功能)。同時支持JSP調試。
15、靈巧的編輯功能
一些小技巧如鍵入匹配的引號及括號使得生活更加容易:)。
16、支持EJB
Idea理解EJB,盡管它不包括對個別應用服務器的特殊支持。不管怎樣最好與Ant一起使用。EJB支持容易使用而且實在-本來就是這樣。
17、幾乎沒有向導
從前許多廠家都綁定大量的向導而不是設計一個簡單易用的接口。雖然有向導但只是一個濫用的工具。Idea只包含了一個用於幫助創建新工程的向導,並且仍然能夠創建一個對新手來講容易使用的程序。
18、靈巧的模板
這些靈巧的模板是代碼的片斷,它們被用來做各種各樣令人驚訝的事情。我第一次使用“iterate over collection”模板時就被震驚了。它不僅挑揀出正確的默認收集變量而且還知道我已經放進去了什麼以及默認的方法。這個特性很難在紙上描述。下載一個測試版本試驗一下吧!
19、最好的代碼實現支持
Idea現在有三種代碼實現支持包括實現默認得變量名稱,JavaDoc以及其他代碼細節。
20、集成Ant
Idea支持Ant建立工具。不僅是運行目標它還支持編譯與運行程序前後運行目標,另外也支持綁定鍵盤快捷鍵。
在編輯一個Ant建立XML文件時,Idea還對組成Ant工程的XML部分提供支持。
21、未使用代碼高亮顯示
如果Idea檢查出某一個變量或者方法沒有被使用,它會把它作為一個不明顯的警告顯示出來。檢查可用來做更詳細的死代碼分析。甚至JavaDoc標簽也能被查出來。
22、小技巧
Ctrl-d復制選中的代碼。如果沒有選擇則復制整行。在沒有選擇的情況下Ctrl-c拷貝一整行,Ctrl-x剪切一整行。
Ctrl-Shift-j會做一個想VI那樣的連接,除非它是句法敏感的。比如有這麼一行:
String s = "This is " + " a split string";
連接之後成為:
String s = "This is a split string";
23、有規律的查找與替換表現
規律查找是可能的,但更美妙的事實是你也可以做規律替換。這一點可節約大量的時間。
24、快速JavaDoc
JavaDoc對任何一個標識符來說都可以通過Ctrl-q輕易地查看到。在編碼實現期也可以訪問。
25、意識動作
在Idea覺察到它可以通過某種方法幫助你時它會提供一些有用地選擇。例如你要使用一個表達式使它可以與指定地變量相匹配,Idea會察覺到這一點然後給你一些選擇,要麼使用表達式要麼改變你在使用地變量地類型。