最近在上手一个陈年 hybrid 前端项目,某模块代码充斥着各种各样的 “魔法数字”,类似这些。
if (xxxx) {
  return 347893;
}
if (xxxx) {
  return 23333;
}
this.setState({
  titleStatus: 2,
});
......
this.setState({
  titleStatus: submitAll === 1 || complete === 1 ? 0 : +data.status === 1 ? 2 : 1,
});
if ([1, 2, 3].indexOf(xxxObj.type) !== -1) {
  ...
}
nativeInvoke('setLeftTitle', {
  enable: '1',
  border: '0', // 0-不显示边框 1-显示边框
  text: '',
});
异常痛苦,但毕竟受人钱财,替人消灾,不得不啃下去。
这里也记录一些反面的例子,希望看到的后来人,尽可能少制造一点类似的痛苦吧~写代码遇到类似 status 的时候,应尽可能用枚举或常量去定义它们,尤其是涉及到不同模块之间通信的情况下。
代码本应是写给人看的 = =