1 爱恨交加却难以割舍的Eclipse
这真的是一个非常艰难的决定,我在大学那会就开始用Eclipse,一转眼都10来年了,基本Eclipse中我可能会用到的快捷键我都是下意识的就能按出来。记得第一次使用的时候,惊讶的发现竟然有界面精美、功能强大、运行流畅于一身的IDE,感觉就是梦幻般的存在。特别是Eclipse(日蚀)和Sun这个名称的关系,想想都忍俊不禁。
几年前有朋友推荐试用过IntelliJ,第一反应就是常用的快捷键都找不到了,改成eclipse适配快捷键还有很多常用的不一样。但是Eclipse又是这么多年来一直让我爱恨交加的IDE,稍有些复杂的框架就会出现N多不兼容的情况,但最终促使我下决心去找个更好用的IDE就是有时候真的不知道为什么同样的配置方式在不同机器却不一定都会生效。我可不想每次为了同事配置机器耗费几十分钟,最终还只能是几率性成功。
以上,真的不是Eclipse不能用,在一般常用的开发中,真的还是最容易学习上手的。但是Eclipse的代码层面设计真心不够好,以至于新版本发布后与旧版本插件居然还可能有兼容性问题。如果你没有被Eclipse的问题所困扰,其实完全可以继续使用。除非你看了下文,想法有所改变...
2 让开发更高效的IntelliJ
在用了一个月之后,渐渐发现他的强大之处,而且所有机器的配置都用一个配置手册搞定了,无一例外。我终于可以只丢一个文档给新员工自己去操作了,省下来好多时间可以喝茶写博客。
2.1 更好的项目管理方式
2.1.1 project & modules
刚切换过来原本还挺困惑的,之前一直听说只能一次打开一个工程,而我这边工程都是分模块化的,需要10多个工程组合在一起才能正常工作。后来发现,这里的Project是类似于eclipse中的workspace,而Module是类似于eclipse中的project。这里可不仅仅是名称简单更改了一下,IntelliJ中的Project真的是一个工程,有统一的Global Library,也可以正确的相互依赖,把原来为了方便开发的模块整合到一起进行管理。So awesome!
2.1.2 超级方便的GIT项目管理
如果上一条你还没理解,这里有个最直观的例子,就是这么多工程每个都是一个独立的Git project(因为不同工程会有不同权限),做完一个功能都会有N个需要提交的module。之前总是会出现忘记提交某个模块的事情,但是现在所有的更新和提交是对这个project下的所有module。就冲这点,就不得不换它了,不知道省下多少时间。
2.2 告别总是与预期不一致的配置
2.2.1 不一样但更清晰的Settings目录
该是IDE配置的东西都在Settings这里能找到,工程的配置也在Project Settings里面。为数不多的目录分层很清晰,现在反而奇怪为什么Eclipse的配置目录看起来那么晕。
2.2.2 告别总是改不掉的tab
Eclipse中真的是用尽浑身解数,配置了N处把tab改成4 spaces,但是你会发现在总有地方还是不生效。但是IntelliJ会完全按照你配置的预期来,现在发现在Eclipse中对齐的好多东西其实都是用tab+space混合的。
2.2.3 默认的深色主题
终于能把整个界面快速改成酷酷的深色了,但是我最后还是上网去下了个配色,但是兼容性很好。Eclipse只能把写代码的那一个窗口变成深色,还经常有颜色显示的BUG。。。
2.3 更高的开发效率
2.3.1 代码的自动生成以及ZenCoding支持
其实这个Eclipse里面也有,但是确实没他智能。举个例子,就是它能生成某个类的测试类,还能正确的放到test相应的目录下。另外,ZenCoding支持非常好,写html非常方便,tab就是快速识别
2.3.2 对JS、CSS以及插件更好的支持
Eclipse里面基本对这两个支持度差到无法直视,因为我Web写的少,所以忍到现在。其他同事都是用其他IDE去写Web,用eclipse启动一下web server。现在只用这一个就行了。
2.3.3 更好的调试
对于这点,只能说是碉堡了,甩了Eclipse几条街。
运行过的行,可以立刻在代码界面提示相关的值,也不用一个Debug界面跳来跳去,而且还能在IDE中调试JS。
2.3.4 快捷键
有更多更好用的快捷键,自己去翻翻~。
3 IntelliJ的坑
这个IDE也不是啥都好,在最初一周的试用评估阶段,也是一堆坑趟过来的。不得不吐槽一下!
- Maven的功能很弱:和eclipse的管理界面比差很多,特别是新增配置只能修改XML,查看依赖需要到另外一个界面。
- 烦人的多层目录:如果你使用Maven,就会发现居然在Project模式下,需要逐一打开src/main/java这三层目录才能看到java文件,为什么不能一起打开。如果用Package模式,你会发现除了在classpath中的文件,什么都看不到,包括你WebContent下的,还要再开一个Web视图。
- 超小的默认内存,内存溢出崩溃不提示:启动内存一样要和Eclipse那样修改配置文件,但是崩溃了就直接界面消失,找了一圈才发现自带的JRE下有个崩溃日志,发现内存居然不够,最后加到1.5G才能稳定运行。
- 社区版的功能太弱,商业版收费不低:除非你只写最基本的Java代码,涉及Web开发等真的没有商业版,这个IDE也不怎么好用。
- git的push:我真心不知道为什么不放到alt+~的菜单或者右上角VCS控制中,藏那么深,只能用ctrl+shift+k去打开界面。
- console多且分散:这个不是不好,它把不同的输出放到不用的Console中,非常清晰,但是刚开始使用,你会发现你不确定会输出到哪里,在哪里能看到。只能说学习成本高了一点。
- Tool Buttons默认没打开:这个为什么不打开,虽然左下角有个图标可以点开,但是你确定第一次使用看不到这些Buttion,用户能找到相应的地方?!
4 总结
如果你只是想找个IDE来学习Java,那么Eclipse会很快让你进入状态。
如果你是想找个能提升开发效率的IDE,那么IntelliJ是非常值得尝试的。
最后说一句,Java自己也是让人爱恨交加,脱离了IDE,这门语言还是让人用的么?!