- 論壇徽章:
- 0
|
IDEA 讓開(kāi)發(fā)不再單調(diào)
說(shuō)起java的IDE,大家瑯瑯上口的不外乎Jbuilder,Eclipse,NetBeans這三個(gè),而這其中又以Eclipse最為瘋狂與狂熱,到Google中以"Eclipse"搜索一把,你會(huì)發(fā)現(xiàn)Google給出了驚人的“約有54,400,000項(xiàng)符合Eclipse的查詢(xún)結(jié)果”,專(zhuān)門(mén)搜索中文的百度也有“找到相關(guān)網(wǎng)頁(yè)約2,360,000篇”。可見(jiàn)Eclipse是如何的受人追捧.
JBuilder由于自身的原因,已經(jīng)漸漸退出了領(lǐng)導(dǎo)者的地位,Netbeans由于sun強(qiáng)力支持也有抬頭的跡象,唯獨(dú)IntelliJ IDEA似乎并沒(méi)有進(jìn)入人們的視線(xiàn),在google中IDEA的搜索結(jié)果還不如Eclipse在百度中的搜索結(jié)果的三分之一。的確由于市場(chǎng)宣傳的原因,知道IDEA的人并不多,何況Eclipse是開(kāi)源軟件,免費(fèi)的,與500 dollar相比,免費(fèi)畢竟是個(gè)大實(shí)惠。但我們?cè)诖瞬⒉荒苣ㄈDEA的優(yōu)秀,和IDEA所提倡的"以人為本"的編碼精神。
什么是IDEA?誰(shuí)在開(kāi)發(fā)維護(hù)?
IDEA 全程 IntelliJ IDEA,是java語(yǔ)言開(kāi)發(fā)的集成環(huán)境,IntelliJ在業(yè)界被公認(rèn)為最好的java開(kāi)發(fā)工具之一,尤其在智能代碼助手、代碼自動(dòng)提示、重構(gòu)、J2EE支持、Ant、JUnit、CVS整合、代碼審查、 創(chuàng)新的GUI設(shè)計(jì)等方面的功能可以說(shuō)是超常的。
IDEA是JetBrains公司的產(chǎn)品,這家公司總部位于捷克共和國(guó)的首都布拉格,開(kāi)發(fā)人員以嚴(yán)謹(jǐn)著稱(chēng)的東歐程序員為主。
2001年1月發(fā)布IntelliJ IDEA 1.0版本,同年七月發(fā)布2.0,接下來(lái)基本每年發(fā)布一個(gè)版本(2003除外),當(dāng)然每年對(duì)各個(gè)版本都是一些升級(jí)。3.0版本之后,IDEA屢獲大獎(jiǎng),其中又以2003年的贏得的“Jolt Productivity Award”,“ JavaWorld Editors’s Choice Award”為標(biāo)志,從而奠定了IDEA的IDE中的地位。目前版本為6.0,2006年10月2日發(fā)布,更新版本為6.0.2。IDEA的宗旨:“Develop with pleasure”。
IDEA的優(yōu)越
前面已經(jīng)說(shuō)過(guò)了IDEA所提倡的是智能編碼,是減少程序員的工作,那么IDEA具體又有哪些值得推崇呢?總結(jié)以下25點(diǎn),希望能有個(gè)比較全面的介紹。
1. 智能的選取。在很多時(shí)候我們要選取某個(gè)方法,或某個(gè)循環(huán)或想一步一步從一個(gè)變量到整個(gè)類(lèi)慢慢擴(kuò)充著選取,IDEA就提供這種基于語(yǔ)法的選擇,在默認(rèn)設(shè)置中Ctrl+w,可以實(shí)現(xiàn)選取范圍的不斷擴(kuò)充,這種方式在重構(gòu)的時(shí)候尤其顯得方便。
2. 豐富的導(dǎo)航模式。IDEA提供了豐富的導(dǎo)航查看模式,例如ctrl+e顯示最近打開(kāi)過(guò)的文件,ctrl+n顯示你希望顯示的類(lèi)名查找框
(該框同樣有智能補(bǔ)充功能,當(dāng)你輸入字母后IDEA將顯示所有候選類(lèi)名)。在最基本的project試圖中,你還可以選擇多種的試圖方式。
3. 歷史記錄功能。不用通過(guò)版本管理服務(wù)器,單純的IDEA就可以查看任何工程中文件的歷史記錄,但版本恢復(fù)時(shí)你可以很容易的將其恢復(fù)。
4. JUnit的完美支持。
5. 對(duì)重構(gòu)的優(yōu)越支持。IDEA是所有IDE中最早支持重構(gòu)的,其優(yōu)秀的重構(gòu)能力一直是其主要賣(mài)點(diǎn)之一。
6. 編碼輔助。java規(guī)范中提倡的tostring(),hashcode(),equals(),以及所有的get/set方法,你可以不用進(jìn)行任何的輸入就可以實(shí)現(xiàn)代碼的自動(dòng)生成,從而把你從無(wú)聊的基本方法編碼中解放出來(lái)。
7. 靈活的排版功能。基本所有的IDE都有重排版功能,但僅有IDEA的是人性的,因?yàn)樗С峙虐婺J降亩ㄖ疲憧梢愿鶕?jù)不同的項(xiàng)目要求采用不同的排版方式。
8. XML的完美支持。
9. 簡(jiǎn)潔易用的GUI界面。
10. 與文件系統(tǒng)自動(dòng)同步。當(dāng)你最小化IDEA,直接對(duì)文件進(jìn)行編輯之后,重新打開(kāi)IDEA后IDEA將自動(dòng)的完成文件的更新,而不用重新導(dǎo)入工程或刷新工程。
11. 自定義的快捷鍵。強(qiáng)大的快捷鍵設(shè)置,基本可以讓程序員離開(kāi)鼠標(biāo)工作。
12. 動(dòng)態(tài)語(yǔ)法檢測(cè)。任何不符合java規(guī)范,自己預(yù)定義的規(guī)范,累贅都將在頁(yè)面中加亮顯示。
13. 代碼檢查。對(duì)代碼進(jìn)行自動(dòng)分析,檢測(cè)不符合規(guī)范的,存在風(fēng)險(xiǎn)的代碼,并加亮顯示。
14. 對(duì)JSP的完全支持。不需要任何的插件,完全支持JSP。
15. 智能編輯。代碼輸入過(guò)程中,自動(dòng)補(bǔ)充方法或類(lèi)。
16. EJB支持。不需要任何插件完全支持EJB(6.0 支持ejb3.0)
17. 列編輯模式。用過(guò)UtralEdit的肯定對(duì)其的列編輯模式贊賞不已,因?yàn)樗郎p少了很多很多的無(wú)聊重復(fù)工作,而IDEA完全支持該模式,從而更加提高了編碼效率。
18. 智能模板。預(yù)置模板可以讓你把經(jīng)常用到的方法編輯進(jìn)模板,使用時(shí)你只用輸入簡(jiǎn)單的幾個(gè)字母就可以完成全部代碼的編寫(xiě)。例如使用比較高的public static void main(String[] args){}你可以在模板中預(yù)設(shè)pm為該方法,輸入時(shí)你只要輸入pm再按代碼輔助鍵,IDEA將完成代碼的自動(dòng)輸入。
19. 完美的自動(dòng)代碼完成。智能檢查類(lèi)中方法,當(dāng)發(fā)現(xiàn)方法名只有一個(gè)時(shí)自動(dòng)完成代碼輸入,從而減少剩下代碼的編寫(xiě)工作。
20. Ant 支持。不需要任何的第三方插件。
21. 不使用代碼檢查。自動(dòng)檢查代碼中不使用的代碼,并給出提示,從而使代碼更高效。
22. 智能代碼。自動(dòng)檢查代碼,發(fā)現(xiàn)與預(yù)置規(guī)范有出入的代碼給出提示,若程序員同意修改自動(dòng)完成修改。例如代碼:String str = "Hello Intellij " + "IDEA"; IDEA將給出優(yōu)化提示,若程序員同意修改IDEA將自動(dòng)將代碼修改為:String str = "Hello Intellij IDEA";
23. 正則表達(dá)的查找和替換功能。查找替代支持正則表達(dá),從而提高效率。
24. JavaDoc預(yù)覽支持。支持JavaDoc的預(yù)覽功能,在JavaDoc代碼中ctrl+q顯示JavaDoc的結(jié)果,從而提高doc文檔的質(zhì)量。
25. 程序員意圖支持。當(dāng)程序員編碼時(shí)IDEA時(shí)時(shí)檢測(cè)你的意圖,或提供建議,或直接幫你完成代碼。
IDEA的不足
前面說(shuō)過(guò)了IDEA的好,最后也要來(lái)寫(xiě)寫(xiě)IDEA的不足了。
1. 插件開(kāi)發(fā)匱乏,比起Eclipse,IDEA只能算是個(gè)插件的矮子,目前官方公布的插件不足400個(gè),并且許多插件實(shí)質(zhì)性的東西并沒(méi)有,可能是IDEA本身就太強(qiáng)大了。
2. 在同一頁(yè)面中只支持單工程,這為開(kāi)發(fā)帶來(lái)一定的不便,特別是喜歡開(kāi)發(fā)時(shí)建一個(gè)測(cè)試過(guò)程來(lái)測(cè)試部分方法的程序員帶來(lái)心理上的不認(rèn)同。
3. 匱乏的技術(shù)文章,目前網(wǎng)絡(luò)中能找到的技術(shù)支持基本沒(méi)有,技術(shù)文章也少之又少。
4. 資源消耗比較大,建個(gè)大中型的J2EE項(xiàng)目,啟動(dòng)后基本要200M以上的內(nèi)存支持,包括安裝軟件在內(nèi),差不多要500M的硬盤(pán)空間支持。(由于很多智能功能是時(shí)時(shí)的,因此包括系統(tǒng)類(lèi)在內(nèi)的所有類(lèi)都被IDEA存放到IDEA的工作路徑中)。
總結(jié)
盡管IDEA目前還有些不足,但一個(gè)誕生不過(guò)5年的產(chǎn)品能得到如此的美譽(yù)并不簡(jiǎn)單,更何況IDEA的很多實(shí)際功能的確走在時(shí)代的前列,至于其的問(wèn)題我們不如包容點(diǎn),畢竟有些問(wèn)題在現(xiàn)在的硬件基礎(chǔ)上根本就不能算是問(wèn)題。
當(dāng)然,無(wú)論我在此如何的夸她,都只是我的體驗(yàn),若真想了解她,唯一的就是自己親自去體驗(yàn)。
資源
Matrix:
http://www.matrix.org.cn
IDEA主頁(yè):
http://www.jetbrains.com/idea/
IDEA插件列表:
http://plugins.intellij.net/
參考資料:
Glen Stampoultzis 《25 Reasons I Love Using IntelliJ Idea》
本文來(lái)自ChinaUnix博客,如果查看原文請(qǐng)點(diǎn):http://blog.chinaunix.net/u/28416/showart_218024.html |
|