简化Java代码
程序员文章站
2022-05-01 09:16:57
...
样板代码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 Boilerplate、SpringSide 这些示例工程,而是项目代码中具体编写的代码。
模板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 Guava、Apache Commons等。
7)依赖注入DI
8)其他
Spring MVC的注解式配置
参考:
https://www.infoq.com/articles/Concise-Java
任何开发语言都存在样板代码的问题,相比之下Java语言的样板化更高。比如可能用10行代码其他语言就能实现的功能,用Java实现需要100行以上。可以Google一下“Reduce Boilerplate Code in xxxx”。
Java语言自身也比较保守,比如没有Python和Ruby的Meta-Programming能力。
JavaIDE都能定义模板后生成代码,也可以借助一些工具来自动化生成一些样板代码。但是问题在于生成的代码依然存在于工程中,需要维护。
这里说的样板不是指 HTML5 Boilerplate、SpringSide 这些示例工程,而是项目代码中具体编写的代码。
模板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 Guava、Apache Commons等。
7)依赖注入DI
8)其他
Spring MVC的注解式配置
参考:
https://www.infoq.com/articles/Concise-Java