关于自己代码风格的一点思考

随着第一个项目正式上线,是时候总结点什么了。以供自己日后反思。
顺便也提醒下自己是时候看下《代码整洁之道》

关于枚举和静态常量

常量

在代码里面最好不要有魔法值,这个虽然在阿里巴巴开发手册中提到过,但是自己刚开始的时候一直觉得,有时候这个变量就使用一次,为啥还需要定义一个变量,那样到时候去寻找这个变量的时候不是更加麻烦么。

后来才发现这个想法有点愚蠢,因为你根本不知道后来会不会使用这个变量。例如以下代码:

1
2
3
if("A".equals(A)){
XXX
}

假设代码中就一处使用这个”A”,没问题。但是当代码中有多处有类似的判断时,直接用上述代码虽然也可以完成,若随后需求一变动,那么就需要修改多个代码块的判断。这时候就会显得很繁琐,而且还说不准会漏掉几个。所以这个时候一个静态变量是不错的选择。例如:

1
2
3
4
public static final String XX_TYYPE ="A";
if(XX_TYPE.equals(A)){
XXX
}

枚举

枚举其实和常量在意义上是一样的。区别就是枚举可以表达更多的信息。例如最常用的接口返回值。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
public enum ResponseEnum{

SUCCESS("200","success"),
FAIL("100","fail")
;
private String code;

private String message;

public ResponseEnum(String code,String message){
this.code = code;
this.message = messgae;
}
}

这个时候就可以表达更多的信息了。同样的,利用枚举也可以来定义一些Exception。

配置文件

除了上述的枚举和常量之外,其实还可以在配置文件中来定义一些通用的变量,在配置文件中定义一些变量的有点是无需修改代码(前提是使用了微服务,有自己的配置中心)。
然后在代码中使用@Value注解来获取该变量。从而无需改动代码。

关于Lambda表达式

Java8中使用的Lambda表达式确实可以简化不少代码的编写,但是需要注意的是。在使用的时候不要写过长的表达式。这样虽然可以方便开发者省去不少的时候,但是有时候却不利于后来维护者阅读代码。

关于Optional泛型

这个泛型其实目前我使用的还是不较少,所以对于这个泛型的使用目前还不清楚是否可以简化代码。

代码的简化

代码的简化是一门艺术,不仅仅是可以简化代码的

函数和变量命名

对于函数和变量的命名,最好是越明确越规范越好。不然自己日后读起来…自己都不清楚这个函数是干啥的

代码行数太多,最好抽离出来

一个方法里面如果行数太多,最好将其抽离出来的,作为一些独立的方法。这样不仅之后阅读起来比较方便,而且还方便以后替换逻辑,如果方法里面逻辑太多,那么在以后如果出现一个需求,功能和之前的某一个方法类似,仅仅是一点不同。

如果是优化后的代码,则仅仅是替换掉那部分不同的方法即可。若一个代码的方法逻辑太多,则必须重写一个类似的方法。这无形之间又加大了开发的工作量,而且也不便于日后的维护。

作者

Somersames

发布于

2018-12-09

更新于

2021-12-05

许可协议

评论