IntelliJ IDEA点滴 —— 编码的幸福感_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > IntelliJ IDEA点滴 —— 编码的幸福感

IntelliJ IDEA点滴 —— 编码的幸福感

 2014/5/18 13:20:14  white_crucifix  程序员俱乐部  我要评论(0)
  • 摘要:不知不觉把IntelliJIDEA作为我编写Java代码的双手也过去了半年多,这半年多时间里,不断体会idea带来的编码上的幸福感,也在不断深挖下发现idea的缺陷,甚至是bug。而在每每遇到bug和不解时,便需要对IDE的原理进行挖掘,同时与eclipse的不断比较中,也潜移默化的对eclipse有很多反哺。一个小故事,在1一年前,无心中也装过一次idea,使用中想删除一行代码,按照eclipse的习惯敲下了ctrl+D,结果是复制了一行。怒删IDEA这个小故事里的感觉
  • 标签:ide Intel 编码

不知不觉把IntelliJ IDEA作为我编写Java代码的双手也过去了半年多,这半年多时间里,不断体会idea带来的编码上的幸福感,也在不断深挖下发现idea的缺陷,甚至是bug。而在每每遇到bug和不解时,便需要对IDE的原理进行挖掘,同时与eclipse的不断比较中,也潜移默化的对eclipse有很多反哺。

??? 一个小故事,在1一年前,无心中也装过一次idea,使用中想删除一行代码,按照eclipse的习惯敲下了ctrl + D,结果是复制了一行。
??? 怒删IDEA

??? 这个小故事里的感觉,绝大多数从eclipse转到idea的Javaer都有。因此每每有人想尝试一下idea,我都会提醒说,『一开始快捷键会非常不适应,要做好心理准备』,而我在使用的初期,直接把它的key map打印出来贴在桌子上,常用的十几个保存在印象笔记里便于随时查询。一段时间后,终于顺了。当然,我的朋友中也有很快上手idea的,而他们基本都不是前Javaer或者eclipser。

??

class="java" name="code"> Ctrl + D : Duplicate

?


?? idea打出的口号是智能的IDE,有着比eclipse更智能的提示和补全。但从更朴实的方面讲,idea有着更多的快捷键。快捷键是一个有(zheng)趣(yi)的话题,常年只用少量快捷键+大量鼠标操作的开发人员并不会觉得有什么不妥,而且本着“熟练>功能”的原则,这也是合乎常理的事情。但这就像是“由俭入奢易,由奢入俭难”,当把你扔到一个vim的环境里锤炼一个月,再回来玩eclipse,保证会去各种寻找以前不在意的快捷键。
?? 说的这么抽象,举两个例子。如果要run一个main方法,我们最常用的就是右键文件,选择run,再选择Java Application,这其实是一个很麻烦的操作,当然你也可以点击菜单栏那边的run图标,默认执行前一次操作。而这是一个鼠标左上滑动的行为,所以更多的人还是习惯鼠标右下滑动的行为,即右键操作。快捷键有没有?有。Alt + shift + X + J,有没有一种想抽人的感觉。为了解决快捷键冲突问题,一般两种解决方案,一是,使用冷僻的按键,二是使用更多数量的按键组合。很遗憾,eclipse选择了后者。如果你用了idea的shift + F10就会有这种感觉。
?? 再一个例子(这本身不能怪eclipse),SVN(或者git)在eclipse平台是一种第三方插件,因此它没有权利设置自己的快捷键,而idea得svn是自身插件,甚至对整个CVS版本控制器体系,idea都抽象出一套通用的操作,并且设置了大量快捷键。不需要每次都右键 -> 选择-> 二级菜单 ->点击。麻烦。

??? 关于代码生成,通常来讲,我不太愿意过多的吹捧智能化,因为越是智能化,越容易让你脱离环境后无所适从。但是,人总会成长,你总要成长到在记事本上也能写出代码来,而这时候,强大的智能化IDE,能让你在枯燥的代码中获得幸福感。
??? 这里我说一个场景,可能很多人会有体会。写代码的时候,通过方法得到一个对象 this.getUser(),此时,你忽然发现后文只需判断这个对象是否为空,因此你想将这行代码直接放入if( xxx != null)中,我个人以往的做法先把代码全选ctrl X,然后写if(),最后ctrl V放入。而在idea13中,通过一种叫后缀的特性 this.getUser().notnull能够智能生成 if(this.getUser() != null){} 的代码结构。类似的还有其他,写到一半忽然想返回这个结果,于是xxx.return;还有for循环,强转等等。
??? 另一个智能化令我印象深刻的地方也在代码模板方面。有时候你想扩大代码中try catch覆盖的范围,往往做法是将try语句剪切复制到前面黏贴,再把catch语句块剪切复制到后面。当你发现idea可以对try catch在内的任何一种代码结构进行“回收”操作时,就会感觉,太人性化了。



??? 其实eclipse做的已经足够优秀了,提供了丰富的代码模板快速生成(for,foreach,trycatch等),而idea做的更好,除了有准备的快速生成,还能满足你写到一半代码时弥补性的快速生成,不得不说,写代码时会体会到一种幸福感。

??? 关于搜索,分为三个方面:方法补全搜索,呼出菜单搜索以及search everywhere。
??? 方法补全搜索绝对是一个亮点,它不再是像传统的StartWith搜索,一旦写错一个字母,整个提示列表就没有了。而是的以单词为单位的顺序匹配搜索。我们都知道java的一大特点就是变量和方法名特别长,能用full name绝对不缩写的风格。举个不太恰当的例子,有一个方法名叫getMyName(),假设中间的My(也可以是其他更长更复杂的单词)忘记了,你用getname依然可以搜索出。或者你知道正确的拼写,但是为了更快的编码速度,你可以直接打出匹配度高的部分,让idea能更快的击中你要的方法。


??? 呼出菜单搜索,确实非常实用。想象一下在eclipse里进行快捷get set生成,当你用alt shift S呼出菜单后,需要N多次的down键才能选到get set的选项,真是淡淡的忧伤。这时候若是能输入“get set”字样,菜单自动匹配只列出相关的选项,那不是超级爽。这就是idea的呼出菜单搜索。



??? search everywhere,这是当今非常流行的功能。从文件名,到操作功能,到IDE配置,都能在一个搜索框中查询,极大的方便了对一个复杂工具的使用,像sublime也有这样的功能。当然,有时你只想搜Class,或者文件,也提供了多个变种的搜索功能



?? 在IntelliJ上还能发现很多好玩的特性,当然也有一些bug的存在。以后慢慢的再写出来好了。
?? 在对编码的效率影响上,其实IntelliJ并没有比eclipse更牛逼到哪里去,很多智能化的特性其实更贴近于奇淫技巧,但是正是这些奇淫技巧,在趣味性和幸福感上的的确确更胜一筹。

?

  • 大小: 70.6 KB
  • 大小: 3.7 KB
  • 大小: 9.7 KB
  • 大小: 53.2 KB
  • 大小: 10 KB
  • 查看图片附件
发表评论
用户名: 匿名