为什么阿里巴巴Java开发手册中不允许魔法值出现在代码中?

在阿里巴巴开发手册中,提到魔法值,是在最开始的常量定义中提到的。即如下图:
魔法值

  1. 魔法值究竟是什么?

在al手册中说是[未经预先定义的常量]。

其他的定义:所谓魔法值,是指在代码中直接出现的数值,只有在这个数值记述的那部分代码中才能明确了解其含义。

魔法值随意出现,主要是影响可读性和代码可维护性。这听起来,象喊口号。

静态常量取代魔法值

if (flag == 100){
    // code
}

这个100是什么意思?为啥要和这个数比较?如果这个变量到处出现,放在一个定义处维护,明显容易维护。

static final Integer CHECKED_TYPE = 75;

魔法表达式,就是十分冗长,不好理解。

if(a == 0 && b == 1 && c < 100){
    // code
}

如果这一行想表达一个意思,库存已经完了,就提前定义:

boolean isSuccess = a == 0 && b == 1 && c < 100;
if(isSuccess){
    // code
}

这样的话,阅读快,一眼就可以看出来这块代码的逻辑。

代码的可读性很重要,你肯定不想看到你接手的代码各种数字符号的,没有任何定义之类的。

# java  

评论

企鹅群:39438021

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×