image.png

原文作者:UC 国际研发 Randy

最近我在公司的项目中遇到很多由于类型不匹配所导致的不可预估的问题。比如说,我们的程序产生了一个纯数字的 unique id, 存到数据库中被识别为 number 类型,但是客户端需要的是字符串,导致一条数据在没有办法在客户端正常显示。

我年轻的时候曾经是一位动态类型的忠实拥趸,因为动态类型方便、自由。假设在我需要编写一段为我服务的小程序时,如果 runtime 强制需要我去做一些向上向下转型的工作,恐怕我会崩溃。

但是,在享受自由的同时,我们却很容易写出这样的程序:

image.png

image.png

这是一个用于生成签名字符串的函数,从逻辑上看,这段代码没有问题。但是,当另一个对这个函数内部实现不了解的开发人员使用它时,会返回意想不到的结果:
image.png

使用者希望把 timestamp 用作 salt,但是 signStr 并不是意料中的由 ti

收藏 打印