读者福利
由于篇幅过长,就不展示所有面试题了,感兴趣的小伙伴
更多笔记分享
if (billCount > 75) {
//todo
} else {
//todo
}
如果在不了解这块的业务的同事,在读到这块代码的时候,可能会想,75 是什么鬼,为啥和这个数比较,背后深藏着什么秘密吗?可能只有当时的开发人员记得了,导致代码可读性和可维护性极差。
如果声明一个常量,来替换该魔法值,可能就会使代码的可读性和可维护性大大增加。
static final Integer BASIC_BILL_COUNT = 75;
还有些魔法表达式,比如:
if (value > 60 && value <= 80 && type = 1) {
// todo
}
比如这个表达式是表示状态为正常且项目活跃,就可以定义:
boolean isActiveProject = value > 60 && value <= 80 && type = 1;
这样是不是可读性就提高了,一眼就可以看出来这块代码的逻辑。
枚举类取代魔法值
========
还有一种消除魔法值的方式是使用枚举类代替,下面让我们举个例子:
if (eventId == 1) {
System.out.println(“睡觉”);
} else if (eventId == 2) {
System.out.println(“吃饭”);
} else if (eventId == 3) {
System.out.println(“打豆豆”);
}
如上代码是针对事件 id 去执行相应的事件,如果事件比较少,大家还可以勉强记住每个 eventId 对应的含义,但是随着事件 id 的增多,很可能会发生,新来的员工把事件 id 给搞混了,导致执行错误的事件,发生 bug。
那么我们可以使用枚举类来表示相应的事件:
public enum EventEnum {
/**
- 睡觉
*/
SLEEP_EVENT(1, “睡觉”),
/**
- 吃饭
*/
EAT_EVENT(2, “吃饭”),
/**
- 打豆豆
*/
FIGHT_PEA_EVENT(3, “打豆豆”);
private int eventId;
private String desc;
EventEnum(int eventId, String desc) {
this.eventId = eventId;
this.desc = desc;
最后
这份文档从构建一个键值数据库的关键架构入手,不仅带你建立起全局观,还帮你迅速抓住核心主线。除此之外,还会具体讲解数据结构、线程模型、网络框架、持久化、主从同步和切片集群等,帮你搞懂底层原理。相信这对于所有层次的Redis使用者都是一份非常完美的教程了。
整理不易,觉得有帮助的朋友可以帮忙点赞分享支持一下小编~
你的支持,我的动力;祝各位前程似锦,offer不断!!!
结学习笔记+最新讲解视频+实战项目源码】](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)收录**