Eclipse 3.6与IntelliJ IDEA 10.5:优缺点

在与Eclipse一起工作了5年以上之后,我在三个月的时间里开始大量使用IntelliJ IDEA进行J2EE项目,并以此为契机比较两者。 您无法真正比​​较5年零3个月,但我仍然相信它足够长,可以很好地概述工具的外观。

对于急躁的人:

IntelliJ是一个非常好的工具,对我而言,它的杀手功能是对其他语言(例如Groovy(例如, 用于单元测试 )和Clojure)的出色支持。 与Eclipse(f.ex)相比,许多细节的工作量更大,可用性更高。 搜索并替换为匹配突出显示和替换预览 。 它对跨多种语言(在我的情况下为Java,JSP,JSF,HQL,Spring config)的可导航性和重构的支持也是提高生产力的绝对重要功能。 当然,我必须赞扬它是捷克产品[ 1 ](有趣的是,NetBeans也来自捷克[ 2 ];可惜Eclipse也没有此链接。

IntelliJ的主要问题是性能。 首先,运行测试的速度很慢,因为IntelliJ仅在您按下“运行”按钮时才(重新)编译测试/源,而不是Eclipse的增量编译。 这使TDD非常痛苦。 (我尝试使用旧的Eclipse模式插件,但IntelliJ 9/10 出现问题 。)其次,有时UI冻结*,您必须等待几秒钟或数十秒才能再次响应(即使在禁用了大多数插件和一些分析)。 它的发生频率不是很高,但是经常足以引起人们的注意,烦人并中断开发流程。

(*)更新: UI冻结可能是Mac 64b 1.6 JDK的特定问题

因此,我想我将针对手头项目的需求使用Eclipse或IntelliJ,并希望IntelliJ解决其性能问题(就像NetBeans一样)。

软件比较

  • Eclipse 3.6 –我从3.0开始就使用Eclipse,甚至在很多商业项目上甚至都没有
  • IntelliJ IDEA Ultimate(完整功能的商业版本; II社区足够好,除非您需要对JavaEE,Spring和Hibernate之类的框架的特殊支持-请参阅版本比较

IntelliJ IDEA的优点

我偶然发现并认为它们值得关注的东西(当然还有更多这样的东西):

  • 对Groovy和Clojure(及其他)的大力支持。 我已经使用Groovy为Java项目编写了单元测试,并且效果很好(仅在不存在的方法上单击+ Alt + Enter才能创建它,除非目标类是嵌套的(静态)类,否则无法使用该方法)测试本身)
  • 对Spring *的开箱即用支持,即您可以单击applicationContext.xml中的bean类名称以跳转至该名称,删除不赞成使用的类,并根据可用的构造函数和setter验证bean定义
  • 重构
  • 移动可以一次移动更多成员/方法
  • Move方法知道目标类型的当前类的字段,因此它能够自动插入fieldOfTargetType.movedMethod()–我在Eclipse中错失了很多
  • 重命名还照顾JSP和其他非Java引用中的JSF EL表达式(我想它比简单的文本搜索和替换更聪明)
  • 完成建议会在您键入时显示(无需按热键-我很喜欢),并且其中包括尚未导入的类型(测试中的@BeforeClass ...)
  • (自动)完成多种语言的提案
  • JSP中CSS类(并建议使用CSS /样式,例如颜色名称)
  • JSF EL表达式中的点击(至少有时)
  • 使用情况搜索还可以找到JSP,Spring config等中的方法使用情况。
  • 调试
  • “变量”窗口不仅会自动显示局部变量,还会自动显示代码中使用的基于局部变量的表达式,例如“ array_variable.length”-一个省时的方法
  • JavaDoc:关闭标签的完成–在Eclipse中,我总是很想念它!
  • 当您生成一个foreach循环(“ itco” +选项卡)并更改源集合时,它将自动更新元素类型(在“ for(Type t:sourceColl)”中)
  • 在查找和替换文件中非常有用的RegExp集成-键入时,它会显示第一个匹配的表达式以及将替换为的表达式
  • 常规:擅长猜测变量的合理名称,...
  • 可以为主模块的子目录定义模块=>您可能有一个使用Java 1.4的项目,并在Java 5+中进行了测试。 同样适用于Maven多模块项目。
  • “项目”视图直接显示Java类型,因此您乍一看就可以从接口中区分类(Eclipse显示文件图标,您需要首先对其进行扩展)
  • Java文件结构视图可以显示“属性”,而不是getter和setter,这使它简明扼要,更容易找到真正重要的内容

(*)仅终极版(可能)

我建议您还阅读对StackOverflow问题的回答, 在IntelliJ中可能发生的事情在Eclipse中是不可能的? –除其他外,他们提到点击任何东西,考虑更多上下文(例如变量名)的自动完成,重构重构的重命名方法(还更新JSP,Spring config等)。

总的来说,我会说IntelliJ非常注重可用性和生产力,试图了解开发人员通常做什么和需要,并帮助他们做到这一点,并且非常擅长。 作者声称它是“最智能的Java IDE”,我认为它们并不夸张(或至少没有太多)。

不太酷

(无特定顺序。)

  • Eclipse仅需要两个热键:用于类/属性/模板/ surround-with的完成(^ space)和用于导入,重构等修复的Quick Fix(^ 1 – E.中最强大的工具 )。几个用于完成的热键,一个用于实时模板,一个用于修复(意图)……–我从来没有设法记住它们,并决定在特定情况下应该使用哪一个
  • 鼠标悬停时没有JavaDoc弹出窗口(需要^ J)
  • 至少在Mac下,“实时模板”编辑器很糟糕(无法键入行尾,挪威语键盘上带有Alt + Shift + 8,空格,…的大括号)。 幸运的是,您可以在编辑器中选择一个代码,然后在“工具”中选择“代码”。 另存为实时模板(尽管您可能应该先取消缩进)
  • 没有喜欢的静态导入-对于特定类的第一个静态方法,我必须:1)编写方法名称的开头; 2)按Ctrl + Alt +空格键(类名完成,不要问我为什么这样做); 3)选择所需的方法,例如CoreMatchers.allOf,然后按弹出窗口的“状态栏”中的建议按Alt + Enter->选择“静态导入”。 从那以后,该类的所有静态方法都将出现在普通的Ctrl + Space完成列表中(虽然很好)。 在Eclipse中,我可以将下面的JUnit / Hamcrest / Mockito朋友添加到喜欢的导入中,并使它们始终可用。
  • 缓慢
    缓慢的测试-更改的文件在运行测试之前即已编译,而在Eclipse中,它们在保存后即已编译
    有时II冻结几秒钟/ 10秒:'( 更新: UI冻结可能是Mac 64b 1.6 JDK的特定问题 运行分析的速度很慢(Checkstyle等),并且会杀死您的IDE(如果您的心脏较弱,也可能会导致分析失败)
  • 用户界面几乎没有错误,至少在Mac上是如此-对话框在您单击另一个菜单时不会隐藏-并不是大问题,但还是很烦人
  • 在Tomcat上运行webapp对于某些同事而言非常有效,但并非对所有同事都非常有用–没有任何详细信息的无用日志记录,服务器无法启动,没有解决方法的提示,“服务器->输出”窗口包含令人困惑的“与服务器断开连接”,Tomcat日志窗口仅包含INFO日志(我的调试日志在哪里?!),logs / catalina.out文件不再存在,Tomcat故障在浏览器中可见,但日志中什么都没有...
  • JavaDoc – Eclipse中的'#method'+ ^ space自动生成{@link #method},而在II中则不是。 更糟糕的是,类查找根本无法在II中首先输入@link进行。 我已经通过实时模板找到了解决方法,但是无论如何我都必须键入它的名称并手动调用它。
  • 我想念Eclipse的自动消失的视图(只要在编辑器中单击任何位置,它们就会消失-尽管在II中,您可以使用Shift + Esc键;如果取消固定视图,则单击它的入入/出入将隐藏它)和功能通过双击最大化任何视图
  • IntelliJ的插件数量少于Eclipse,尽管所有主要项目也可能都针对它

我也许可以忍受一些小烦恼(或者可以学习执行我要实现的目标的正确方法?),但是性能问题很难接受。

有用的资源

参考: Eclipse 3.6与IntelliJ IDEA 10.5的比较:来自JCG合作伙伴 Jakub Holy优缺点 ,在Holy Java博客上

相关文章 :

翻译自: https://www.javacodegeeks.com/2011/11/eclipse-36-vs-intellij-idea-105-pros.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值