项目中的魔数处理
2021年10月11日...大约 2 分钟
在这之前先来说一个编程中常见的现象,在代码中出现但没有解释的数字常量或字符串,这种数字我们也叫它“魔数”。比如我们在开发功能的时候,有个地方要判断类型,类型有两种1是平台2是个人,然后代码里就比较多的 type === 1
或 type === 2
,写的时候或许还能记得它们的含义,但是过段时间再看代码,或者同事来看你的代码,如果你能在定义 type 的地方写个注释标记它的可能取值及其意思,这都还算好的了,如果连注释也没有,这俩数字就没有语义了,不知道1和2代表啥意思,在去翻文档查语义理解起来就特别费劲。然后这时候因为你要做一点改动,平台的判断码改成 3 了,难受不。
而 1 和 2 是什么?是常量。我们可以将这两个常量命名后使用,比如在代码里定义一个 const PLATFORM = 1; const PERSION = 2;
,在用到 1 和 2 的地方,都以常量名字 PLATFORM
和 PERSION
来代替,这样你点击查找定义的时候也比较方便。如果这个变量在一个文件中用了,那么将其定义在文件逻辑代码的开头,如果是在多个文件中使用了,找一个共同的上级文件位置去存放或者直接放到全局常量文件中
语义理解优 ,如果你命名的OK的话,起码常量能起到一个见名知意的作用,这对于我们代码的语义化是很重要的,与之相对的,如果你命名有问题,那可能就直接误导了别人,通常情况来说的话,用个翻译软件就能解决你大多数的问题了。
易于管理 ,你的相同变量成体系的在一处存储,如果有类型值的变动可以方便清晰的改动,而不必去文件夹下检索所有后一一替换
待续