程序员的工作不是写程序,而是写程序解决问题。 --- 某不知名程序员

我们每天都在写代码,有些代码有结构性的相似,但不是所有的代码都可以被抽成方法。在这种情况下,我们应该考虑使用template的方式加快我们的开发速度。这篇博客会先介绍IntelliJ下已经有的一些code/live template,然后介绍如何自定义template。

1.IntelliJ下已有的template

在java中,我们时常会遇到遍历一个iterable的情况。如下所示:

for (Integer item : items) {
            //...
        }

你可以选择一个字母,一个字母的敲,但是在IntelliJ下面,你只需要输入iter再按TAB键,就可以自动生成这个代码,和原来的代码比起来,你需要敲键盘的次数少了几倍。

这个时候,红色的框框部分就是当前你的编辑区域,因为我之前有一个items的变量,这里IntelliJ会建议Iterable是items。如果你觉得不对也可以修改,确认后敲Enter。

敲了回车以后,就进入下一个编辑的部分,而不需要你手动的去移动光标。确实很Intelligent啊。

IntelliJ中提供了很多现有的Code/Live Template,你可以在Settings中找到这些已有的template:

比如sout可以输出System.out.println(...), ifn可以输入if (xxx == null) 等等。学习这些template,并且灵活运用,可以缩短你敲键盘的速度。

2.自定义Live Template

IntelliJ提供了很多现成的template。但你也可以根据自己的需要创建新的template。举个例子,我们经常在测试代码中写出如下的代码:

assertThat(person.getAge(), is(18));

我们会写很多次的assertThat(..., is(...))。每次这样去敲,让我觉得很烦,

我们来看如何在IntelliJ中配置这个模板来简化这个输入。

如上图所示,进入IntelliJ的Settings的Live Template,我们创建一个新的template:ati。

1)缩写名(Abbreviation):ati。ati就是assertThat(..., is(...))的缩写,在以后,你只需要输入ati,就有办法自动变成assertThat(..., is(...));了

2)模板文本(Template text):assertThat($result$, is($expect$))。这里被$括起来的部分就是敲了Enter以后,光标会停留的部分。

3)使用情况(Applicable):statement。这表示你创建一个statement的时候,可以用到这个template。

4)选项(options):Enter。这里我选择的使用Enter出发ati变成完整的assert语句。不过建议使用TAB,这样的话,和IntelliJ自己提供的template保持统一。

这样就配好了template。让我们来试验一下:

第二行就是提示template,这个时候轻盈的按下TAB键,就会看到:


光标就正在等待你输入了。


总结:

写程序不是程序员的目的,解决问题才是程序员的目的,写程序只是解决问题的一种手段而已。当我们采用写程序这种方式解决问题时,我们仍然需要专注于问题本身。

提高我们编码的速度,目的不是自嗨,只是为了减少敲键盘对我们思考问题、解决问题的干扰。

做到心中无码,才更容易专注于解决问题。

IntelliJ下使用Code/Live Template加快编码速度:程序员的工作不是写程序,而是写程序解决问题的更多相关文章

  1. Code Review 程序员的寄望与哀伤

    一个程序员,他写完了代码,在测试环境通过了测试,然后他把它发布到了线上生产环境,但很快就发现在生产环境上出了问题,有潜在的 bug. 事后分析,是生产环境的一些微妙差异,使得这种 bug 场景在线下测 ...

  2. [No000033]码农网-如何锻炼出最牛程序员的编码套路

    最近,我大量阅读了Steve Yegge的文章.其中有一篇叫"Practicing Programming"(练习编程),写成于2005年,读后令我惊讶不已: 与你所相信的恰恰相反 ...

  3. Code Review 程序员的寄望与哀伤【转载】

    一个程序员,他写完了代码,在测试环境通过了测试,然后他把它发布到了线上生产环境,但很快就发现在生产环境上出了问题,有潜在的 bug. 事后分析,是生产环境的一些微妙差异,使得这种 bug 场景在线下测 ...

  4. 转: Code Review 程序员的寄望与哀伤

    转自: http://www.cnblogs.com/mindwind/p/5639008.html 一个程序员,他写完了代码,在测试环境通过了测试,然后他把它发布到了线上生产环境,但很快就发现在生产 ...

  5. Java开发者薪资最低?程序员只能干到30岁?国外真的没有996?Intellij真的比Eclipse受欢迎?

    Stack Overflow作为全球最大的程序设计领域的问答网站,每年都会出据一份开发者调查报告.近日,Stack Overflow公布了其第9次年度开发者调查报告(https://insights. ...

  6. 分享下对JAVA程序员成长之路的总结<转>

    我也搞了几年JAVA了,由于一向懒惰,没有成为大牛,只是一普通程序猿,手痒来给新人分享下从新手成长为老鸟的已见.   首先初识语法的阶段,必须要学会怎么操作对象,操作if和for,操作list set ...

  7. 【转载】分享下多年积累的对JAVA程序员成长之路的总结

    注:该文是从百度贴吧转载过来,之前看到觉得写得还不错,对Java开发学习者来说很有意义的,可以看看. 我也搞了几年JAVA了,由于一向懒惰,没有成为大牛,只是一普通程序猿,不爱玩社交网站,不爱玩微博, ...

  8. delphi 编码速度提升技能

    效率,是一个永恒的主题. 本文重点强调 delphi ide 中的编码速度技能 一.TForm 窗口重用 当您在写一个管理类软件的时候,有大量的操作窗口,这些窗口会有大量共性.窗口重用就会发挥很大的作 ...

  9. 分享下多年积累的对JAVA程序员成长之路的总结

    http://blog.csdn.net/zhongzelin/article/details/8643269我也搞了几年JAVA了,由于一向懒惰,没有成为大牛,只是一普通程序猿,不爱玩社交网站,不爱 ...

随机推荐

  1. Java&.Net虚拟机精简(GreenJVM&GreenDotNet发布) .

    精简JRE体积的小工具:http://blog.csdn.net/cping1982/archive/2008/09/02/2865198.aspx 项目地址:http://code.google.c ...

  2. WSP (无线会话协议)

    WSP (无线会话协议) WSP是在无线应用协议(WAP:Wireless Application Protocol )组中的协议,用两种服务提供无线应用环境一个稳定的接口. 中文名 WSP WAP ...

  3. linux的cgroup控制

    cgroup:control group-控制群组:将用户(的进程)加入某个群组(又叫控制器controller), 通过 指定群组对资源-cpu 内存 network等的使用,来限制用户对计算机资源 ...

  4. HTML5中的Range对象的研究

    一:Range对象的概念 Range对象代表页面上的一段连续区域,通过Range对象,可以获取或修改页面上的任何区域,可以通过如下创建一个空的Range对象,如下: var  range = docu ...

  5. iOS开发之#iPhone6与iPhone6Plus适配#Xcode6.0/Xcode6.1上传应用过程中一些变动以及#解决方案#

    更新时间2014年11月13日  本博文创建时,只有Xcode6.0, Xcode6.0尝试多次,确实如此 之后在6.1版本经博主少量尝试,确实也有如下问题,现更新下博客! iOS8发布之后,苹果强制 ...

  6. Charm Bracelet

    Charm Bracelet Time Limit:1000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u Subm ...

  7. Linux中常用的查看系统信息的命令

    导读 Linux是一个神奇而又高效的操作系统,学完Linux对Linux系统有一个熟悉的了解后,你需要了解下这些实用的查看系统信息的命令. 查看系统版本命令 uname 谈到系统版本就一定会想到una ...

  8. ubuntu 快速安装jre

    sudo add-apt-repository ppa:webupd8team/java sudo apt-get update sudo apt-get install oracle-java7-i ...

  9. Coursera台大机器学习课程笔记8 -- Linear Regression

    之前一直在讲机器为什么能够学习,从这节课开始讲一些基本的机器学习算法,也就是机器如何学习. 这节课讲的是线性回归,从使Ein最小化出发来,介绍了 Hat Matrix,要理解其中的几何意义.最后对比了 ...

  10. DCMTK354之VC++ 2008 MFC应用程序配置完整过程

    花了一个礼拜,终于在VC++2008 MFC 应用程序中完成了首个基于DCMTK354的首个程序ECHOSCUWIN32,现将过程记录下来,便于日后查阅,同时也提供给那些有幸看到此博文而对他们又有帮助 ...