深思熟虑的机器学习软件开发之道
飞机旅行是世界上最安全的出行方式之一,飞机失事致人死亡的概率极低,一个人即便做40年的飞行员,也可能一次事故都不会遇到。然而,航空并非一直如此安全,从1929年到2014年,虽然航空事故造成的死亡人数有所波动,但考虑到航班数量的大幅增加,飞机失事致人死亡的概率从0.25%骤降至0.00824%。
软件行业的发展也历经多年,在这期间,许多软件项目有成功也有失败。像healthcare.gov的推出就是一场财政灾难,耗费了约6.34亿美元;2013年纳斯达克因软件故障关闭并被罚款1000万美元;2014年的“心脏出血”漏洞使许多使用SSL的网站面临风险,CloudFlare撤销了超过10万张SSL证书,预计损失数百万美元。软件和飞机一样,都很复杂,一旦出现问题,后果往往很严重。航空公司通过制定严格的法规和飞行员使用检查清单等方式,大幅降低了航空灾难的概率,但软件行业却未能做到这一点,灾难性的软件漏洞仍然频繁出现,造成了巨大的经济损失。
正确编写软件
从1929年到2014年,飞机变得更加复杂、更大、更快,同时美国联邦航空管理局(FAA)和国际机构也出台了更多的法规,飞行员也养成了使用检查清单的习惯。虽然计算机技术和硬件发展迅速,但运行它们的软件大多仍采用传统的过程式和面向对象代码,未能充分利用并行计算的优势。不过,程序员们在编写软件的准则和测试文化方面取得了很大的进展,其中包括采用SOLID原则和测试驱动开发(TDD)。
SOLID原则
SOLID是一个有助于设计更好的面向对象代码的框架,就像FAA规定了航空公司和飞机应该如何运行一样,SOLID告诉我们应该如何创建软件。违反FAA规定可能会导致严重或轻微的后
机器学习与软件开发之道
超级会员免费看
订阅专栏 解锁全文
22

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



