1.命名时不同单词之间要用下划线隔开
DEVICE_STATUS_UNIQUEID而不是DEVICESTATUSUNIQUEID
DEVICESTATUSUNIQUEID让人看不懂是什么意思
2.if嵌套不能超过3层
3.能在之前判空尽量直接判空返回,不要直接判不为空太繁琐
不建议的例子
if (t != null) {
System.out.println("11111");
...
}
建议的例子:
if (t == null) {
return;
}
System.out.println("11111");
...
4.尽量变量在哪使用就在那创建,不要过早创建
变量创建尽量在变量使用的上一行
5.不要分配不必要的空间,有的调用方法返回是带分配空间的
比如:
Map<String,String> sn=obtainDetails(id);
这个是ok的
不要写成下面这样,这样会浪费空间:
Map<String,String> sn=new HashMap<String,String>();
sn=obtainDetails(id);
6.遍历map尽量使用
for (Map.Entry<String, String> maps.entrySet()) {
String key = entry.getKey();
String value = entry.getValue();
}
7.优化代码时如果在现有方法中有逻辑修改,最好不要修改现有方法,在上层方法中将不通逻辑的处理掉然后调用原有方法
比如:现有save方法中是存储传过来的所有值(数据库中已存在的就更新数据信息,不存在的就存储数据和时间)
现在有新需求:如果数据库中没有这个数据,那么就不存储,数据库存在的就跟新数据信息
原有save有两个相关方在用,一个相关方A需要每次传过来的值全量更新存储,即保持原有save逻辑不变,另一个相关方B有需求只更新数据库中有的属性
处理方法有两种:
1.重新为相关方B创建一个方法
2.在相关方调用save方法前就把数据库中不存在的remove掉,然后就可以调用原逻辑save方法了
建议使用第二种方法上层逻辑直接处理掉,这样不用添加新方法,便于后期维护
8.map不建议在遍历的时候进行remove
下面是拒绝这样使用的:
Map<String, String> map2=studentU.getStatus();
Map<String, String> map1 = redis.hgetAll("core");
if (map1 == null || map1 .size() <= 0) {
return ;
}
Map<String, String> map3=new HashMap<String, String>();
for (Map.Entry<String, String> entry : map2.entrySet()) {
String key= entry.getKey();
String value= entry.getValue();
String oldvalue = oldCurrStatus.get(key);
if (oldvalue == null) {
map2.remove(code);
}
}
注:这样很可能会出现边遍历map2的同时边删除map2,可能会出现空指针的情况,杜绝这样使用
建议方法是:
Map<String, String> map2=studentU.getStatus();
Map<String, String> map1 = redis.hgetAll("core");
if (map1 == null || map1 .size() <= 0) {
return ;
}
Map<String, String> map3=new HashMap<String, String>();
for (Map.Entry<String, String> entry : map2.entrySet()) {
String key= entry.getKey();
String value = entry.getValue();
String oldvalue = oldCurrStatus.get(key);
if (oldvalue == null) {
continue;
}
map3.put(code,content);
}
return map3;
注:map3中存储的就是去除掉map2中在map1不存在的元素后的元素map
9.
public static final定义的常量最好大写
eg:
不建议这个形式 public static final String studentType="good";
建议写成这种形式 public static final String STUDENTTYPE="differ";