2009-09-16 58 views
5

我下載了IntelliJ IDEA並開始了30天評估。爲什麼使用Intellij,或在評估過程中做什麼

現在我只是想知道,爲什麼我應該使用IntelliJ進行普通的老Java開發(所以沒有Hibernate,JSP等)?它與eclipse或NetBeans看起來沒有什麼不同,所以我希望有一些IntelliJ大師可以舉一些IntelliJ可以做的事情的例子來證明投資金錢的合理性。我正在嘗試使用評估功能,並且不想錯過重要的功能。

things possible in IntelliJ but not in eclipse的列表已經可用,但我比日常工作流更感興趣,而不是一些每月使用兩次的模糊功能。

+11

「它看起來並不不同......」 - 你知道,從遠處我不能告訴巧克力和船尾之間的區別,要麼。 :) – weiji 2009-09-16 22:17:40

回答

12

我一直在使用的IntelliJ爲大約5年後(自4.5版本開始),我還閱讀了Manning的大部分書籍「IntelliJ in Action」,但我仍然不認爲自己是一位專家。事實上,我也想用它來做「簡單的舊Java開發」,說實話,我不得不說它非常好。就像其他答案一樣,我只能說它有一個明確的優勢,那就是真正把它置於頂端。我們在這裏也使用Eclipse,雖然我沒有那麼多的經驗,但我可以告訴你,肯定有很多基本的東西缺乏。我花了一些認真的時間和精力學習Eclipse,尋找如何做IntelliJ中我認爲理所當然的事情,而且他們大多數都不在那裏,或者實施起來很差。重構的東西絕對是非常有用的東西。

除了重構之外,我認爲只有很多小小的修改才能真正幫到你。我想一個例子可能有助於澄清...

試試這個:

創建一個新的空類。將光標移到大括號內,然後執行psvm並按下Ctrl-J - 這會將「psvm」擴展爲「public static void main(String [] args)」。這個快捷方式將處理一個常用慣用語的整個列表(並且它也是可配置的)。裏面的主代碼塊,輸入驗證碼:

public static void main(String[] args) { 
    int x = 1000; 
    sout 
} 

在的「SOUT」結束後,再做一次按Ctrl-J - 你會看到另一個彈出窗口,讓你從一些不同的擴展選擇的,但在一般這會擴展到「System.out.println(」「)」和幫助將光標放在雙引號之間(這是一個小小的接觸,這真的讓它發光,我認爲與Visual Studio的「智能感知」相比 - 如果你問我,那就是一個完整的罐子)。

無論如何,退格在第一個雙引號 - 注意它刪除了匹配的雙引號?它也使用大括號和括號做同樣的事情。我認爲有幾個角落的情況下,我更喜歡它不這樣做,但大部分時間它幫助了很多。回到代碼編輯:只需輸入X,使代碼現在看起來像這樣:

public static void main(String[] args) { 
    int x = 1000; 


    // add a few blank lines here too - the need for 
    // this will be obvious a little later 

    System.out.println(x); 
} 

現在,將光標移動到X的聲明,以及按住Shift鍵F6 - 這是重構IN-放置對話框(我不知道該怎麼稱呼它,所以我只是做了這個)。名字「x」在它周圍有一個彩色框,你可以開始爲它鍵入一個新名字 - 當你鍵入時,該名字的所有用法也會動態更新。我真的很喜歡另一種整潔的感覺。

試試這個:把一個很長的行註釋的地方,像這樣:

// this is a really long comment blah blah blah i love to hear myself talking hahaha 

現在,假設你決定評論太長,所以你的地方將光標移動到它的中間,然後按Enter。 IntelliJ會將評論的剩餘部分加上前綴「//」,它「知道」這是前一評論的延續,因此它會爲您評論。另一個整齊的接觸。

// this is a really long comment blah 
// blah blah i love to hear myself talking hahaha 

另一大獎金我喜歡的IntelliJ相比,Eclipse的是,它是更侵入 - 我真的很討厭的Eclipse將如何設法讓在彈出窗口的頂部彈出窗口和鼠標焦點將是地方,但鍵盤焦點被卡住在下面的事情等等。我認爲有可能以這樣的方式工作,以至於這些事情不會發生,但它首先使我非常惱火。這讓我想起,在IntelliJ中,如果將鼠標光標移動到左側窗格中的包或文件導航器上,該面板會自動獲得鼠標焦點,所以我習慣於立即使用鼠標滾輪來查看。在Eclipse中?您將鼠標懸停在上方,但焦點停留在編輯窗格上,因此您必須用鼠標點擊鼠標才能轉移焦點,然後才能使用鼠標滾輪查看。就像我說的那樣,這很有助於提高生產力。

在你周圍編碼時,注意在當前行上的紅色「燈泡」類型符號的左側陰影條 - 這是IntelliJ告訴你它可以做的事情。使用Alt-Enter彈出一個小的就地對話框,它會告訴你它可以自動處理的內容。假設你輸入一個名爲「getFoo()」的方法定義,並且沒有foo成員 - 它會提供爲你創建它。或者,如果您正在使用類並調用getFoo()等不存在的方法 - 它將提供創建getter和成員或常規方法。這只是簡單的幫助。總的來說,我認爲小觸摸並不是IntelliJ大師們真正想談論的,但我真的很感激這些事情是如何「幹得好」的。他們照顧小細節,所以你不必花費太多心智運行時檢查你自己的語法。我認爲這是一個管家幫我編碼的工具 - 它爲我處理小雜務,所以我不必這樣做。蝙蝠俠有他的阿爾弗雷德,我有我的IntelliJ。如果你喜歡,所有的設置都非常適合你修改,但它看起來像是默認設置都是爲了提高你的工作效率,而不是一直在做非常麻煩的決定(尤其是那些你幾乎總是會做的事情)反正也是一樣的選擇)。

IntelliJ存在一些明顯的缺陷 - 價格有點高,而且它可能需要一段時間才能加載大型項目。我很幸運,因爲我的公司支付了許可證以及一個非常好的工作站,所以它的加載速度相當快,但是你的里程會有所不同。

+6

您描述的特定於IntelliJ的大部分功能也存在於Netbeans和Eclipse中。 – JRL 2009-09-17 01:25:41

+2

有趣的是,這裏給出的大多數例子都存在於Eclipse中:爲main方法輸入main和Ctrl + Space,爲sysout輸入syso(),Ctrl + Space輸入System.out.println(),突出顯示x並輸入Alt + Shift + R來重新命名...... IMO,這證實了選擇一個IDE比另一個更適合你的編碼習慣,你對當前環境的瞭解,因此非常主觀。 – 2009-09-17 01:43:36

+5

是的,我知道。我在序言中回答了這個問題,「他們大多不在那裏,或者執行得很差」。就像我的笑話 - 關於巧克力和便便的評論 - 他們是同一種顏色並不意味着他們是一樣的。 – weiji 2009-09-17 01:43:54

1

我不是IntelliJ IDEA專家,但粉絲們通常喜歡IntelliJ的是偉大的重構和代碼輔助功能。從這個角度來看,他們經常聲稱這種產品遠勝於其競爭對手。個人而言,我是以下原則的支持者:使用您覺得效率最高的IDE,而不是其他人喜歡的IDE。

4

在Intellij 2年後,我剛剛回到Eclipse(由於客戶的偏好)。

我在找Eclipse的時候少了有幫助。我知道這是一個模糊的術語,但Intellij的反饋更加清晰,用戶界面給了我更多關於發生了什麼的信息,自動建築似乎更加無縫。項目設置/配置似乎更直觀。

這也許是主觀的,但有時候這就是爲什麼你更喜歡一個。它只是覺得有點滑頭,那一點點友善......

(我不認爲的IntelliJ的VIM插件是更好的,但那是另一回事!)

10

我有一份日常工作,我使用Eclipse(因爲這是所有允許的)。我也有自己的公司,我在那裏「月光」做合同工作並使用IntelliJ。

我會說他們的功能集大致相同。幾乎相同的重構,相同的代碼輔助,相同的使用風格等等。Eclipse可以說擁有比IntelliJ更好的插件,可能還有更多。 IntelliJ只是像Spring和Hibernate一樣「知道」了什麼,並且這些東西比具有類似功能的Eclipse插件更好地集成。

我選擇在允許的情況下使用IntelliJ(個人購買和升級幾次)的原因是它所做的一切只是感覺更乾淨。儘管有一個功能齊全的免費IDE,但IntelliJ中的完全相同的功能感覺比Eclipse更加簡化和易於使用,這足以讓我付出代價。

因此,您應該做的決定是:每天使用IntelliJ進行30天的所有開發任務。通過學習新快捷方式和搜索,重構等方式,我猜你會更喜歡它。如果沒有,Eclipse仍然適合你。

+0

轉到行號鍵綁定在eclipse驅使我堅果(Ctrl + L,我相信),因爲它不像任何其他Windows應用程序(Ctrl + G)。我同意所有這些加起來的小事讓我跳槽。 – dhable 2009-09-17 01:30:55

3

2weiji:使用標籤代替按Ctrl + j的 :-)它更方便:-))
SOUT然後標籤
PSVM然後標籤
ITER然後標籤
etc ...:o)

+0

謝謝 - Tab確實非常方便。對於默認的鍵盤映射,我認爲它比Ctrl-J更好。不幸的是,我使用了一個修改過的emacs鍵盤映射,所以在這種情況下,「Emacs Tab」優先於「Next Template Variable」 - 是嗎? – weiji 2009-09-17 16:01:46

2

爲什麼使用IntelliJ?因爲我覺得它在用戶界面中更加一致並且更加精美。它使您可以將手放在鍵盤上的時間更長,而不必在鍵盤和鼠標之間來回切換。正如其他人所說,這是小事加起來的。

我發現用戶意圖功能是一個巨大的節省時間,以及它審查代碼的方式,並建議優化和糾正不良做法。我可以在很多上下文中使用Alt-Enter,並且IDE能夠找出並插入應該存在的內容。比如類型聲明,優化舊式for-loop以使用新的JDK-5類型的循環,刪除冗餘值賦值或未使用的變量。

能夠首先鍵​​入不存在的方法的用法,然後按下鍵組合並讓IDE寫出方法的裸露結構 - 巨大的定時器。它爲我提供了一個更好的工作流程,因爲它可以讓您首先考慮如何使用方法,以及在上下文中閱讀時的樣子。

重構的支持 - 這是很大的賣點,當我在2003年開始使用它,我認爲它仍然一路領先(但我聽說NetBeans是也是相當不錯的了)

強烈建議您查看IntelliJ KeyMap參考。

看一看這種討論對於經常使用的快捷鍵:What are the most useful Intellij IDEA keyboard shortcuts?