使用了eclipse10年之后,我终于投向了IDEA

最近,改用了idea,同事都说我投敌了。当然,这些同事都是和我一样的“老”程序员。不说毕业生,公司里的90后基本电脑都不会安装eclipse。

eclipse的三足鼎立时期

开始我写Java程序,用的并不是eclipse,而是用的一款叫做jbuilder的工具。当时使用这个工具的时候,我已经觉得非常的好用,因为在此之前,我好像记得只是用个简单的文本工具来编辑。后来才发现,那些喜欢宣扬文本编辑器才能学会精通java的“高手”真的有点不敢恭维,至少于我,一个好的工具太重要了。

并没有过了多久,我发现一款叫做eclipse的工具,而且身边还越来越多,于是我决定试一试。尝试的最后,我发现实在是太好用了,他的界面变得更漂亮,而且里面的功能感觉就是为程序员量身定做的一样,最激动人心的功能是他竟然支持源源不断的插件,而且这个插件你还可以,自己来编写。

eclipse2001年由ibm创立,2003年就成立基金会,可惜国内嘛,在那个时代,总是要晚一些,而我更落后,直到07、08年才开始真正使用。《程序员》在06年还出了一起专题-Eclipse风暴。
那时候,eclipse、jbuilder、netbean三足鼎立的局面,基本形成了。

eclipse称霸

再后来myeclipse出现了这个东西更加厉害,他集成了所有常用的插件,只要你一键安装完就啥也有了,基本上用它,你可以开发出java的任何东西。虽然他不是免费的。

慢慢的,jbuilder已经没什么人使用;而netbean不知道是不国内还是我圈子太窄,身边用的人总是很少,倒是在国外翻译的技术书里经常和eclipse一同出现。

重构的流行,让eclipse更受青睐。熊节在《重构》译本里推荐eclipse,后来我亲眼看了他使用eclipse纯键盘(基本不用鼠标)飞快的重构代码,有点傻了眼。后来背诵快捷键成了我的一项课题。

在接下来接近10年的日子里,就是他陪着我度过了漫长又有意思的编程生涯。虽然经常有人争论用简单版的eclipse好还是用丰富的myeclipse好,用丰富版的经常会嘲笑用简单的,什么都没有,什么插件都得重新来一遍,用简单版的又会鄙视使用丰富版的,什么插件都不会安装。我曾经见过有一个同事,使用的滚瓜烂熟,每一个插件在文件夹下叫什么名字应该删除哪些文件应该放在什么地方,应该增加哪些配置,怎么安装怎么卸载都倒背如流,随后我也慢慢学会了这招。再后来插件安装,已经不需要这么麻烦了,只需要在市场上搜索一下,点击一下安装就可以了。但是这些功能的改进并没有让他免除用户群慢慢转移的危机。

Intellij IDEA横空出世

其实很久之前我就听说idea非常好用,说只要使用过后就不会在使用eclipse了。还说JetBrains这家公司怎么怎么懂得java程序员。但是,我实在找不到什么改变的理由,所以一直没有尝试使用。
况且,我还需要开发c++、python,这些语言,eclipse都有完善相应的版本插件支持。

其实中间,我也不断地询问已经转向使用的同事,我问他究竟别/好像哪里?但是没有一个同事能够清晰的回答我这个问题。大部分的同事只是说就是很好用,你如果细细地问他好在哪儿,他却说不出来。
还有一些同事确实列举了一些,他认为更为好用的功能,然后告诉我,然后我听完之后告诉他,其实这些功能eclipse也有。还有一个同事更搞笑,用了两个月了,说非常的好用,然后我叫他调大一些,字体让我看看,他竟然说不知道怎么调。这些遭遇实在让我想不出来什么要改变的理由。

但是上个星期出现了一个契机,就是公司主持了几个培训,不约而同的这几位培训,是都使用IDEA来培训,其实,工具的不同并没有太大的影响及对培训知识的吸收,但是我实在忍受不了我明明花了一个小时听培训,但是只听了55分钟的知识,剩余的5分钟关于工具的使用技巧也应该吸收过来。加上早就听说Robert C Martin也许从一个eclipse转向了这个工具,于是我决定我要改变一下了。

上周一是我改变的第一天,安装过程非常顺利,官网提供免费版和试用版,我当然毫不犹豫地选择的试用版,至于30天以后,咱们心照不宣(掏钱呗)。安装过后当然是黑糊糊的一个界面,上面的所有按钮实在是非常的陌生,我使用的10年的那些快捷键发现全部不好使了,我甚至连怎么导入一个现有的工程都不会了。

我有点受不了了,我受不了的不是对新知识的学习与掌握,而是效率迅速降低20倍,甚至一百倍。没办法,一个一个问题百度吧。 大概过去了半天到一天,神奇的事情发生了,我竟然不再想继续用eclipse了,甚至有点没有了IDEA,感觉更麻烦了。于是家接下来的四天,我越来越顺畅地开始编写我的代码了。

对于只是使用了五天的,我来说,我说的什么,其实都只是一个新手的废话,但是我还是喜欢总结一下。

eclipse和idea,哪个更好?

idea,个人觉得,确实比eclipse要更好,但是它的好处并不主要是多了哪些功能,从功能的多少数量上来说,他们俩其实是差不多的, IDEA,更优秀的关键点在于他在细节上更为人性化,做得更优秀而已。

比如配置tomcat,我竟然不用百度,自己尝试点点,就成功跑起来了。感觉它真的懂我的心一样。

开始使用的一些注意事项

如果你是刚开始编程,那就没什么关系,但是像我一样是用的eclipse很多年的老程序员,那么对快捷键一定是一个障碍,但是idea已经做了很人性化的设置,默认的快捷键可以一键改成eclipse的快捷键,但是我尝试了,确实改变了大部分,但并不是百分之百,所以我放弃了。

还有就是对工程和模块要理解好,以前的eclipse都是做工程的概念并没有模块的概念,所以你可以把很多的工程都导入进去,但是IDEA完全不一样,他只能导入一个工程,如果你要在导入另外一个工程,你必须新开一个界面,当然你不用担心耗费内存的问题,已经。优化好了,但是在一个工程里面你可以导入多个模块,其实这个更适合我们平常的开发,因为maven 就是模块化的配置。

tomcat的设置也非常人性化,注意的是,可以通过勾选tomcat实例,就可以一个tomcat多个工程使用了。当然,端口要不同,才能同时启动。

三个很常用的设置按钮

  • Preperences
  • Project structure
  • Run configuration

常用的快捷键(mac)

  • cmd+shift+f 全project或模块等查找某个字符串
  • cmd+shift+o 查找文件
  • cmd+0 查找类
  • cmd+f 本文件中查找字符串
  • cmd+x 删除一行
  • cmd+c 选中该行并且复制
  • alt+enter 自动提示错误修复
  • ctrl+alt+h 显示调用该方法的方法
  • cmd+7 显示该类的全部方法
  • cmd+alt+l 整理代码格式
  • ctrl+alt+o 整理import
  • shift+f6 重构rename
    还有很多。。。
    基本都和eclipse不同,但是我必须一个个的“寻找”回来。

我喜欢的特色功能

  • idea默认下面显示了teminal,很好用,现在我很少用mac自带的终端(虽然eclipse找找也有,但实在不好用)
  • 右手边有个数据库连接,我现在也很少用Navicat和mysql workbench了
  • 同样右边的maven也很好用,不像eclipse要右键,而且默认的还不齐全

2018.10.27

==========

JetBrains确实是伟大的公司,现在我弄js,也用了它的webstorm,弄python也用了他的pycharm而不是eclipse的pydev了。

再见,eclipse。

2018.11.4

==========

又断断续续用了一周,发现没有想象中完美。
偶尔有些卡,毕竟太多东西放内存。而且也出现过闪退。
快捷键实在有些还记不住,有个快捷键要按四个键太难记了。有些个别功能感觉还是有点不如eclipse方便比如改字符集(也可能我不熟悉)。断点调试也还不习惯。
也有很多功能真的要把eclipse彻底忘记,比如重构rename,idea默认竟然把同名的都rename掉。我重构个我自己写的类的get方法,它把map.get的get也rename掉了,真的有点无语。不过习惯就好,总比漏了一些rename自己慢慢改好。

2018.11.18

使用了eclipse10年之后,我终于投向了IDEA的更多相关文章

  1. 终于等到你:CYQ.Data V5系列 (ORM数据层)最新版本开源了

    前言: 不要问我框架为什么从收费授权转到免费开源,人生没有那么多为什么,这些年我开源的东西并不少,虽然这个是最核心的,看淡了就也没什么了. 群里的网友:太平说: 记得一年前你开源另一个项目的时候我就说 ...

  2. eclipse启动优化,终于不那么卡了!

    eclipse启动优化,终于不那么卡了! 网上找了好多都是myEclipse的优化的,跟eclipse有点区别,找了很多方法还是不能让这个eclipse(Version: Kepler Release ...

  3. C#终于支持可选参数了!

    今天偶然看了一下C#4.0的新特性, 第一个新特性就令我兴奋不已, 曾经一度令我使用C#很不习惯的"死参数"问题终于搞定了.实在太爽了! 过去用C++, VB.NET的时候都很爽, ...

  4. 终于遇到app不兼容,你遇到了么?

    题记: 如果支付宝和QQ不兼容,要二选一,你会怎么选择? 首先了解一下背景: 笔者最近发现,微众银行的app升级到1.7.4, 而患有轻度强迫症的人是迫不及待的点了升级. 第一次,居然安装包安装不成功 ...

  5. 2016最后一贴,终于调通一个测试示例,并发现一个BUG???

    真的难点在于第一次调通.纠结五天,终于搞出界面. 也发现了一个书上代码,编辑用户时死活不通的情况,我将Links去了,改在data里,我X,,全OK了.. 原来的代码: onAdd: function ...

  6. ASP.NET Boilerplate终于发布v1.0了

    (此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 题记:ABP经过2年多的开发,终于发布第一个主要版本了,谨此提醒ABP的使用者. ASP.N ...

  7. 体验了微信小程序,发现安卓用户终于把果粉“碾压”了一次

    今天早上,张小龙在微信公开课上分享了小程序的理念,并且公布了小程序将于1月9日上线. 为了体现张小龙对未来程序形态的理解,小程序有四个特定:无需安装.触手可及.用完即走.无需卸载.今天,36氪刚好有机 ...

  8. 终于开始用github了

    一直以来,github的大名就如雷贯耳.虽然我半年多前就从了解到了这个神奇的网站,而且趁着当时的一时兴趣注册了账户,但是对于那时候的我来说这个网站还是太复杂了点,毕竟半年前的我还没有开始写代码啊,所以 ...

  9. [ASP.NET 5]终于解决:Unable to load DLL 'api-ms-win-core-localization-obsolete-l1-2-0.dll'

    11月12日,惊喜地发现SqlClient(System.Data.SqlClient.dll)跨平台了(对应的nuget包包是runtime.unix.System.Data.SqlClient), ...

随机推荐

  1. Permutation Sequence(超时,排列问题)

    The set [1,2,3,…,n] contains a total of n! unique permutations. By listing and labeling all of the p ...

  2. Android远程服务

    一.远程服务主要代码 1.IService.aidl package com.shz.remoteservice; interface IService { String getTicketInfoB ...

  3. SqlSugar最容易使用的ORM

    SqlSugar官网

  4. system表空间用满解决

      分类: Oracle 早上看到alert日志报说system表空间快满了(oracle版本是11gR2):   如果system表空间不是自动扩展,空间用满甚至会出现数据库无法登陆.使用任何用户登 ...

  5. zookeeper客户端

    查看具体结点信息 bash zkServer.sh status 查看哪个结点被选作leader或者followerecho stat|nc 127.0.0.1 2181 测试是否启动了该Server ...

  6. IOS开发 APP提交程序上传流程

    由于苹果的机制,在非越狱机器上安装应用必须通过官方的App Store,开发者开发好应用后上传App Store,也需要通过审核等环节.AppCan作为一个跨主流平台的一个开发平台,也对ipa包上传A ...

  7. java quartz的使用,做时间轮询调用 CronTrigger

    import org.quartz.Job; import org.quartz.JobExecutionContext; import org.quartz.JobExecutionExceptio ...

  8. form怎样正确post文件

    form在HTML中,是用于收集用户输入的,基本全部浏览器都支持form.给form加入method属性.就能实现将用户在form内控件输入的信息POST到制定地址.或发送GET请求. 写了以下一段代 ...

  9. Android使用adb获得activity堆栈信息

    很实用的命令: adb shell dumpsys activity 该命令能够看到当前执行的是哪个activity,执行的一些进程等 首先能够看到执行的进程: ACTIVITY MANAGER RU ...

  10. HBuilder开发App教程05-滴石和websql

    滴石 介绍 滴石是用HBuilder开发的一款计划类app. 用到HBuilder,mui.nativejs以及h5一些特性. 预期 眼下仅仅开发到todolist级别, 以后计划做成日计划,月计划, ...