简化Java代码

样板代码Boilerplate Code的定义: https://en.wikipedia.org/wiki/Boilerplate_code

任何开发语言都存在样板代码的问题,相比之下Java语言的样板化更高。比如可能用10行代码其他语言就能实现的功能,用Java实现需要100行以上。可以Google一下“Reduce Boilerplate Code in xxxx”。

Java语言自身也比较保守,比如没有Python和Ruby的Meta-Programming能力。

JavaIDE都能定义模板后生成代码,也可以借助一些工具来自动化生成一些样板代码。但是问题在于生成的代码依然存在于工程中,需要维护。

这里说的样板不是指 HTML5 BoilerplateSpringSide 这些示例工程,而是项目代码中具体编写的代码。

模板Template:只包含布局或样式
骨架Skeleton:
样板Boilerplate:还包含具体的文字图形等数据

1)语言新特性
比如:Java7的try-with-resources、Java8的Lambda/Stream等。

那些丑陋的Java API http://rensanning.iteye.com/blog/1843545
20年Java发展历程(1995-2015) http://rensanning.iteye.com/blog/2195622

2) Project Lombok
为了封装类的成员变量,JavaBean规范需要为类定义getter和setter方法。但很少有人在这两个方法中写一些有意义的代码,但这两个方法还不可少,因为依据规范大量的框架还需要通过这两个方法来操作成员变量,这样就会在工程里发现大量的无意义的getter/setter方法。

Lombok基于注解Hack编译过程(javac/AnnotationProcessor、Eclipse/JavaAgent)来自动生成代码。

Java简化臃肿代码之Lombok http://rensanning.iteye.com/blog/1930853

同样针对Android开发也有类似的工具: AndroidAnnotations

3)封装 Encapsulate
OOP三个基本特征:封装、继承、多态中的封装就是为了共用代码。编写共通组件也是开发中相当重要的一部分。

4)反射 Reflection
大部分开源框架都通过反射来调用工程里的代码。

5)重构 Refactoring
Rename、Extract Method、Pull Up/Push Down

6)开源框架 Frameworks
Google GuavaApache Commons等。

7)依赖注入DI

8)其他
Spring MVC的注解式配置

参考:
https://www.infoq.com/articles/Concise-Java

猜你喜欢

转载自rensanning.iteye.com/blog/2329250