TwKit
正在载入
TwKit

2000年1月1日过去后,很多系统仍然正常运转,于是有人说当年的千年虫危机根本是吓唬人。 这个判断漏掉了一段非常重要的背景。早期计算机系统为了节省存储空间,… · @lzd412476732 · TwKit

@lzd412476732

2000年1月1日过去后,很多系统仍然正常运转,于是有人说当年的千年虫危机根本是吓唬人。 这个判断漏掉了一段非常重要的背景。早期计算机系统为了节省存储空间,经常只用两位数字保存年份。例如“99”表示1999年,年份跳到“00”以后,程序可能无法正确区分1900年和2000年。 问题不只发生在电脑显示日期的地方。银行利息、保险期限、工厂控制、账单结算和长期数据库,都可能存在相关的年份运算。尤其是运行多年的系统,代码到底由谁写、哪些地方互相调用,有时连使用单位也说不完整。 上世纪九十年代,企业和政府投入大量资金、人力排查旧程序、做兼容改造、模拟跨年测试。部分系统被替换,也有不少只修改了关键计算逻辑。 后来大规模灾难没有出现,不能直接证明前面的排查都白做了。当然,具体项目里也可能有成本过高、风险被夸大的情况,需要分别审视。 这类问题尤其怕跨系统传递。某个程序把“00”理解成1900年,另一个程序却理解成2000年,单独测试都能过,连起来算合同期限就可能出错。因此当年的重点还包括接口测试和整条业务流程验证。 像工厂做预防性维护一样,设备没停机,有可能是运气好,也可能是之前有人把容易出问题的地方提前改掉了。

曝光 20 · 评论 2 · 点赞 2 · 书签 0

查看原帖