关注互联网应用及运维技术的个人博客

为什么阿里巴巴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
}

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

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

赞(0)
未经允许不得转载:飞天狒狒 » 为什么阿里巴巴Java开发手册中不允许魔法值出现在代码中?

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址