为何放弃Eclipse,选择IntelliJ IDEA,看完终于明白了
如果你初次用idea,毫无目的的度娘如何使用IDEA 浪费的将会是大量的时间。一套让你花时间,少走弯路的视频教程(下载地址:https://pan.baidu.com/s/1gfeX3hD)
当你坚持用一周用IDEA后,你会真正的爱上它,哪怕前几天是痛苦的熬过来,到最后你也会真正的明白为什么我会让你选择它!!!且看下文!!
1 爱恨交加却难以割舍的Eclipse
这真的是一个非常艰难的决定,我在大学那会就开始用Eclipse,一转眼都10来年了,基本Eclipse中我可能会用到的快捷键我都是下意识的就能按出来。记得第一次使用的时候,惊讶的发现竟然有界面精美、功能强大、运行流畅于一身的IDE,感觉就是梦幻般的存在。特别是Eclipse(日蚀)和Sun这个名称的关系,想想都忍俊不禁。
几年前有朋友推荐试用过IntelliJ,第一反应就是常用的快捷键都找不到了,改成eclipse适配快捷键还有很多常用的不一样。最终没玩多久就放弃了。
但是Eclipse又是这么多年来一直让我爱恨交加的IDE,稍有些复杂的框架就会出现N多不兼容的情况,但最终促使我下决心去找个更好用的IDE就是有时候真的不知道为什么同样的配置方式在不同机器却不一定都会生效。我可不想每次为了同事配置机器耗费几十分钟,最终还只能是几率性成功。
其实,在一般常用的开发中,Eclipse真的还是最容易学习上手的。但是Eclipse的代码层面设计真心不够好,以至于新版本发布后与旧版本插件居然还可能有兼容性问题。如果你没有被Eclipse的问题所困扰,其实完全可以继续使用。除非你看了下文,想法有所改变...
2 让开发更高效的IntelliJ IDEA
在用了一个月之后,渐渐发现他的强大之处,而且所有机器的配置都用一个配置手册搞定了,无一例外。我终于可以只丢一个文档给新员工自己去操作了,省下来好多时间可以喝茶写博客。
2.1 更好的项目管理方式
2.1.1 project & modules
刚切换过来原本还挺困惑的,之前一直听说只能一次打开一个工程,而我这边工程都是分模块化的,需要10多个工程组合在一起才能正常工作。后来发现,这里的Project是类似于eclipse中的workspace,而Module是类似于eclipse中的project。这里可不仅仅是名称简单更改了一下,IntelliJ中的Project真的是一个工程,有统一的Global Library,也可以正确的相互依赖,把原来为了方便开发的模块整合到一起进行管理。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会完全按照你配置的预期来,而且默认就是4 spaces,只有SQL默认是2个。
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,代码和界面的自动刷新同步等等。我到现在也不知道为什么在Eclipse中有时候改了代码,有时候会热部署,有时候就是直接重启server,还有时候不手动重启都不生效。。。
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,这门语言还是让人用的么?!
再次配上此IDEA视频教程 让你少走弯路,让你少花时间 :
(下载地址:https://pan.baidu.com/s/1gfeX3hD)
为何放弃Eclipse,选择IntelliJ IDEA,看完终于明白了的更多相关文章
- 还傻傻分不清楚equals和==的区别吗?看完就明白了
解决一个问题的最好方法就是发现一个问题产生的根源,即发现最本质的东西,再去解决它. Java语言里面的equals()方法是交给开发者们自己去覆盖重写编写功能的,即让开发者去定义当满足什么条件时,两个 ...
- 我们为何放弃Eclipse,投奔IntelliJ IDEA
本文来源于我在InfoQ中文站原创的文章,原文地址是:http://www.infoq.com/cn/news/2013/11/why-drop-eclipse-use-intellij Nikita ...
- Idea_从Eclipse转Intellij IDEA
场景:使用Intellij IDEA感觉还是不是很顺手,想放弃又舍不得它,如:强大的代码提示功能. 本人使用IntelliJ IDEA其实并不太久,用了这段时间以后,觉得的确很是好用.刚刚从Eclip ...
- 看完它,你就全懂了十大Wifi芯片原厂!
看完它,你就全懂了十大Wifi芯片原厂! 来源:全球物联网观察 概要:不知不觉中,WiFi几乎已攻占了整个世界.现在只要你上网,可能就离不开WiFi了. 2014年是物联网WiFi市场关键的转折期 ...
- 看完这篇,保证让你真正明白:分布式系统的CAP理论、CAP如何三选二
引言 CAP 理论,相信很多人都听过,它是指: 一个分布式系统最多只能同时满足一致性(Consistency).可用性(Availability)和分区容错性(Partition tolerance) ...
- 看完SQL Server 2014 Q/A答疑集锦:想不升级都难!
看完SQL Server 2014 Q/A答疑集锦:想不升级都难! 转载自:http://mp.weixin.qq.com/s/5rZCgnMKmJqeC7hbe4CZ_g 本期嘉宾为微软技术中心技术 ...
- APP的缓存文件到底应该存在哪?看完这篇文章你应该就自己清楚了
APP的缓存文件到底应该存在哪?看完这篇文章你应该就自己清楚了 彻底理解android中的内部存储与外部存储 存储在内部还是外部 所有的Android设备均有两个文件存储区域:"intern ...
- 看完这些,你就算得上既了解围棋又了解alphago了
首先,我们要祝贺小李下出第78手的“神之一手”,这一手堪称前无古人后无来者,尤其是结合了阿尔法狗自暴自弃的表现.小李说过他的失败并不是人类的失败,同样,小李的胜利也只是属于他一人的胜利. 然而人类在围 ...
- Servlet 是否线程安全 看完便知
Servlet 是否线程安全 看完便知 转自:http://blog.sina.com.cn/s/blog_6448959f0100kct7.html 摘 要:介绍了Servlet多线程机制, ...
随机推荐
- BIOS备忘录之EC常用知识点
BIOS工程师眼中常用的EC知识点汇总: EC的硬件架构 EC硬件结构上主要分为两部分:Host Domain和EC Domain Host Domain就是通过LPC与CPU通信的部分(LPC部分需 ...
- python爬虫——论抓包的正确姿势和学好Javascript的重要性(1)
没事想爬下数据,就入了scrapy坑,跟着https://zhuanlan.zhihu.com/data-factory这篇教程走,中间被小数量的网站坑过,不过还是写出了爬虫~~ 切糕王子:毫无防御, ...
- 2018-2019-2 20189206 Python3学习
python3简明教程学习 基本概念 脚本文件: 脚本文件英文为Script.实际上脚本就是程序,一般都是由应用程序提供的编程语言.应用程序包括浏览器(javaScript.VBScript).多媒体 ...
- linux基础之用户和组管理及权限
一.用户和组管理 相关配置文件 /etc/passwd: 用户名 : 密码占位符 : UID : GID : COMMENTS : 家目录 :默认shell /etc/group: 组名 : 组密码占 ...
- Java 成员变量和属性的区别
例一: 一个Student pojo类: public class Student{ private String name; private int age; public String getNa ...
- jsp/servlet学习三之会话管理初解
由于http的无状态性,使得会话管理或会话跟踪成为web应用开发一个无可避免的主题.默认下,一个web服务器无法区分一个http请求是否为第一次访问.例如,一个web邮件应用要求用户登陆后才能查看邮件 ...
- maven+springmvc出现:java.sql.SQLException: Unknown system variable 'query_cache_size'
连接mysql时一直出现以下的错误: org.springframework.web.util.NestedServletException: Request processing failed; n ...
- R apply() 函数和 tapply() 函数
apply(a,b,c) a是矩阵 b是行或列的代表,1是行,2是列 c是执行函数,如求和-sum,求平均-mean,求-range tapply(a,b,c) a是一个一维数据, ...
- 二叉树放置照相机 Binary Tree Cameras
2019-03-27 15:39:37 问题描述: 问题求解: 很有意思的问题,问题描述简单,求解过程也可以非常的简洁,是个难得的好题. 求解的过程是自底向上进行分析,对于叶子节点,如果在叶子上放置照 ...
- appDesign
1原则 简约,实用,懒人模式 2模块划分 以实用目的,而非以工具