最危险的 Bug 是不会崩溃的那个
发布: (2026年1月18日 GMT+8 06:14)
1 min read
原文: Dev.to
Source: Dev.to

问题
会导致应用崩溃的 bug 很容易被发现。
危险的 bug 则会悄悄运行……它们通过了测试、类型检查和代码审查,却仍然破坏了你的逻辑。
示例
order.status = "paid";
order.invoiceId = null;
没有崩溃。没有错误。状态完全错误。
使用运行时不变式的解决方案
invariant("order.status === 'paid' -> order.invoiceId != null");
这会立即失败——正好在逻辑出错的那一刻,而不是几天后或在生产环境中。