2009-09-16 151 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?

相关问题