CI全绿,TypeScript没报错,你以为稳了。结果凌晨2点,某个奇怪JSON payload砸过来,工具层直接表演当场去世。
这不是语法问题,是合同问题。你的代码和自己握手言欢,但和调用方、schema注册中心、另一个服务的SDK版本、以及那个刚回滚完神志不清的JSON——完全没对上眼神。
最狠的一种情况:schema漂移。上游改了字段名,你的类型定义还停在上周,TypeScript当然沉默是金。等流量打进来,运行时才发现「哦,原来这个字段已经不存在了」——但崩溃报告比你的告警快了一步。
还有工具契约bug。你定义了输入格式,但agent理解成了另一个意思。双方都觉得对方不讲理,只有生产环境的日志知道真相。
原作者的总结很扎心:「A green TypeScript build proves your code agrees with itself. It does not prove your API agrees with the caller.」换句话说,类型安全是必要条件,不是充分条件。
他列了12个具体症状,从运行时错配到版本协商失败。看完的人反馈:第7条我们上周刚踩过,监控没报,用户先骂了。
热门跟贴