- content {:toc}
# 闲话
“程序猿”、“码农”、“软件攻城狮”,程序员这个职业现在已经被这些网络流行语给玩坏了。由于程序员门槛越来越低,由于“copy+改”的开发模式在业界里的流行,“程序员”这个曾经神圣的词语也似乎越来越廉价了。在人们的印象中,程序员似乎就是整天在噼哩啪啦敲键盘的职业。我想说,噼哩啪啦敲键盘的那群人,其实叫打字员。程序员起码应该是一个动脑子的打字员。一个典型的程序员(或者叫合格的程序员),应该至少有80%的时间在思考和学习,最多有20%的时间用于码字。也就是说,一个不加班的程序员(假设存在),一天应该最多有1.6个小时在敲代码。1.6小时能写多少代码?对于Java程序员,有效的代码量应该差不多是100行。Java恰恰是一个无效代码很多的语言,Java哆嗦的表达方式被无数业内人数所诟病。因此,如何降低无效代码量,提高开发效率,是值得每个Java程序员应该思考的问题。
开这一个系列旨在帮助大家提高开发效率,主要是介绍一些第三方包、插件等的使用。在开始之前,这里有几个优先级更高的通用性建议:
一是选择一款合适的IDE(Integrate Development Environment,集成开发环境)。Java本身的繁琐使得它不适合使用记事本类轻型开发工具进行开发,因此推荐使用相对重量级的IDE进行开发。合适的开发工具可以帮助我们完成很多重复性工作,如生成常用的代码、自动导包、自动整理代码格式,大幅节省码字时间。目前市面上流行的Java IDE主要有三款:eclipse(包括在此基础上衍生的MyEclipse、STS等)、intellij idea、netbeans。这三款产品各有所长,但综合比较下来,强烈推荐使用intellij idea,它的智能提示效果和对各种文件类型的支持是其他两款IDE所难以启及的。顺便一提,它是捷克的一家叫做JetBrains的公司出品的IDE,这家公司出品的其他语言的IDE也很优秀,如用于写python的PyCharm、写php的PhpStorm、写前端的WebStorm等。当然,idea的专业版是收费的,大家都懂的,有条件的同学请支持正版。
二是建立一个自己的常用代码库,将一些新项目中常使用的代码保存进去,随取随用,可以使用github的gist功能帮助自己维护这个代码库,idea有直接向github上提交gist的快捷功能,大家可以自行研究一下,后续文章中会有详细介绍。
三是使用新版本的JDK。在当前语境下,建议使用JDK8以上的版本。Java8的lambda表达式和Stream功能可以大幅提高开发效率。每个版本的JDK设计时,都会考虑简化开发、提高效率,比如java7的diamond语法(Map<String, Object> map = new HashMap<>(),等号后面的尖括号内不用再指定类型),再比如后续java10中的var使得java向动态类型语言的方向发展。因此,掌握和使用新版本的JDK几乎总能提升你的开发效率。
四是学习一门脚本语言,比如python。一方面平时常用的一些小的功能可以用脚本语言快速开发出来,另一方面可以使用脚本语言结合模板开发一些代码生成器。有人说过,超过90秒的重复性工作就应该写脚本来完成,试想你的代码能代替你工作,你是不就可以坐享其成了?
这个系列的第一部分讲lombok,它是一个旨在减少重复性代码的第三方包,它的设计思路是通过一系列注解来自动生成代码。