最近在上手一个陈年 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
的时候,应尽可能用枚举或常量去定义它们,尤其是涉及到不同模块之间通信的情况下。
代码本应是写给人看的 = =