关于自己代码风格的一点思考
随着第一个项目正式上线,是时候总结点什么了。以供自己日后反思。
顺便也提醒下自己是时候看下《代码整洁之道》
了
关于枚举和静态常量
常量
在代码里面最好不要有魔法值
,这个虽然在阿里巴巴开发手册中提到过,但是自己刚开始的时候一直觉得,有时候这个变量就使用一次,为啥还需要定义一个变量,那样到时候去寻找这个变量的时候不是更加麻烦么。
后来才发现这个想法有点愚蠢,因为你根本不知道后来会不会使用这个变量。例如以下代码:
1 | if("A".equals(A)){ |
假设代码中就一处使用这个”A”,没问题。但是当代码中有多处有类似的判断时,直接用上述代码虽然也可以完成,若随后需求一变动,那么就需要修改多个代码块的判断。这时候就会显得很繁琐,而且还说不准会漏掉几个。所以这个时候一个静态变量是不错的选择。例如:
1 | public static final String XX_TYYPE ="A"; |
枚举
枚举其实和常量在意义上是一样的。区别就是枚举可以表达更多的信息。例如最常用的接口返回值。
1 | public enum ResponseEnum{ |
这个时候就可以表达更多的信息了。同样的,利用枚举也可以来定义一些Exception。
配置文件
除了上述的枚举和常量之外,其实还可以在配置文件中来定义一些通用的变量,在配置文件中定义一些变量的有点是无需修改代码(前提是使用了微服务,有自己的配置中心
)。
然后在代码中使用@Value
注解来获取该变量。从而无需改动代码。
关于Lambda表达式
Java8中使用的Lambda
表达式确实可以简化不少代码的编写,但是需要注意的是。在使用的时候不要写过长的表达式。这样虽然可以方便开发者省去不少的时候,但是有时候却不利于后来维护者阅读代码。
关于Optional泛型
这个泛型其实目前我使用的还是不较少,所以对于这个泛型的使用目前还不清楚是否可以简化代码。
代码的简化
代码的简化是一门艺术,不仅仅是可以简化代码的
函数和变量命名
对于函数和变量的命名,最好是越明确越规范越好。不然自己日后读起来…自己都不清楚这个函数是干啥的
代码行数太多,最好抽离出来
一个方法里面如果行数太多,最好将其抽离出来的,作为一些独立的方法。这样不仅之后阅读起来比较方便,而且还方便以后替换逻辑,如果方法里面逻辑太多,那么在以后如果出现一个需求,功能和之前的某一个方法类似,仅仅是一点不同。
如果是优化后的代码,则仅仅是替换掉那部分不同的方法即可。若一个代码的方法逻辑太多,则必须重写一个类似的方法。这无形之间又加大了开发的工作量,而且也不便于日后的维护。