在技术栈里,「已验证」到底是什么意思?
来源:dev.to — 2026-08-24
📋 概述
作者认为代码库里最危险的词是叫 `verified` 的字段,因为它通常把两种截然不同的东西存进同一列:一种是真的「被证明」(签名校验通过、密码学断言成立,属于算术),另一种是「被推断」(启发式达成一致、指纹看起来正常、分数够低,属于判断,而熟练的对手一个下午就能修补)。一旦两者共享一个字段,下游某个分支就会把猜测当成确定来用,系统开始凭直觉拒绝真实客户,而代码读起来却像真的知道什么。作者的解法是保留一个只表示「密码学上已定案」的布尔值,让任何推断都别碰它。
🔑 核心要点
- `verified` 字段常把「被证明」与「被推断」两种完全不同含义存进同一列。
- 被推断是判断,熟练对手一个下午就能修补;被证明是算术,要么成立要么数学失败。
- 两者共享字段后,下游分支会拿猜测当确定,系统凭直觉拒绝真实客户。
- 解法:单一布尔只表示「密码学已定案」,推断结果一律放进分数或信号集。
- 同样的原则适用于 is_bot、is_fraud、trusted 等听起来像事实实则存估计的名字。
💡 金句
一旦二者共享一个字段,下游就会开始把猜测当成确定。
👍 0
👎 0
← 返回 dev.to 首页