构建大概率近似正确的软件
航空与软件:复杂系统的不同命运
如果你乘坐过飞机,就会知道航空是世界上最安全的出行方式之一。飞机失事导致死亡的概率仅为 1/2940 万,这意味着一个人即便成为飞行员,在 40 年的职业生涯中也可能不会遭遇一次坠机事故。然而,航空并非一直如此安全。2014 年航空业形势严峻,有 824 人因航空事故丧生;1929 年则有 257 人遇难。但考虑到如今美国每年有超过 1000 万次航班,而 1929 年仅有 5 - 10 万次,从 1929 年到 2014 年,飞机失事导致死亡的概率从 0.25% 骤降至 0.00824%。
软件行业的发展历程与航空业类似。虽然 1929 年还没有我们现在所熟知的软件开发,但在过去的 85 年里,我们见证了许多软件项目的成功与失败。例如,healthcare.gov 的推出就是一场财政灾难,耗费了约 6.34 亿美元;2013 年纳斯达克因软件故障而关闭,并被罚款 1000 万美元;2014 年的心脏出血漏洞使许多使用 SSL 的网站变得脆弱,CloudFlare 撤销了超过 10 万张 SSL 证书,预计损失数百万美元。
软件和飞机都属于复杂系统,一旦出现故障,后果往往是灾难性且公开的。航空公司通过美国联邦航空管理局(FAA)和国际机构的严格监管,以及飞行员的清单文化,将航空灾难的概率降低了 96% 以上。然而,软件行业却未能取得同样的成效,随着软件的日益复杂,灾难性的漏洞频繁出现,造成了数十亿美元的损失。那么,为什么航空业能如此安全,而软件却漏洞百出呢?
正确编写软件
从 1929 年到 2014 年,飞机变得更加复杂、庞大和快速,与此同时,FAA 和国际机构加强了监管,飞行
超级会员免费看
订阅专栏 解锁全文
3万+

被折叠的 条评论
为什么被折叠?



