查看原文
其他

Bruce Eckel最新演讲:调bug就是浪费生命!放弃吧!(附完整PPT)

Bruce Eckel 大数据 2019-06-24

导读:bug和可恢复错误是两个不同的概念。


程序员花在bug上的大量时间,实际上都被浪费了。面对bug,我们应该采用的方法叫做“快速失败”(Fail-fast)。


有时候你可能会遇到“面向铁路的编程”:一旦你踏上失败的轨道,你几乎永远不会回头。


5月18日,2018全球软件与运维技术峰会(WOT)在北京举行,大数据(ID:hzdashuju)的小编应主办方邀请到现场围观。本次WOT的一大亮点就是请到了Bruce Eckel这位神级人物,他在现场发表了题为"Failing at Failing: How and Why We've Been Moving Away From Exception Handling"(我们为什么、又该怎样告别异常处理)的演讲,并与粉丝互动,随后又进行签名售书活动。


▲大神的签名真是萌萌哒


Bruce Eckel是MindView公司的总裁,该公司向客户提供软件咨询和培训。他是C++标准委员会拥有表决权的成员之一,拥有应用物理学学士和计算机工程硕士学位。从1984年至今,他已经发表了超过150篇计算机技术文章,出版了6本书。他的《C++编程思想》一本书在1995年被评为“最佳软件开发图书”,《Java编程思想》被评为1999年Java World“最受读者欢迎图书”,并且赢得了编辑首选图书奖。这两本书的英文影印版及中文版均已由机械工业出版社引进出版。


▲Bruce Eckel在WOT


在演讲中,Bruce Eckel提出,当前编程面临的三大挑战是编程语言的设计和影响、并发性以及错误的处理和报告。



编程语言设计以及它所造成的影响是第一个也是最重要的一个挑战,它关系到程序员的效率和生产力;关于并发性,他仍在不断学习、加强这方面的知识;而这次演讲的重点就放在错误的处理这方面。


而重点中的重点是,bug和可恢复错误是两个不同的概念。



Bruce Eckel表示,很多时候我们是无法从错误当中进行恢复的,大部分的错误都是不可恢复的,他们都是bug。程序员花在bug上的大量时间,实际上都被浪费了。所以我们要一定要区分开bug和可恢复错误,如果出现了bug我们是没有办法处理的,不要在bug上浪费时间。



bug使得我们的代码可读性更低,使得整个程序运行速度更慢,消耗掉了大量的资源。面对bug,我们应该采用的方法叫做“快速失败”(Fail-fast),我们不会使用任何的恢复机制。所有的这些问题都是不可恢复的,比如说错误的函数,或者是内存不够,我们就需要去放弃他们,而不是说写代码去绕过他们。



可恢复的错误呢?一般来说都是来自于程序外部的一些东西,比如I/O的问题、数据的问题。可恢复错误一般比例很小,其数量是要远低于10%的。



编程语言是否需要异常处理?它可能有用也可能没用。不同语言的处理方式和效果也各自不同。在这方面,Java其实是有漏洞的。



最后,Bruce Eckel谈到了一些未来的趋势,并对本次演讲进行了简单的总结,再次强调了放弃的哲学。有时候你可能会遇到“面向铁路的编程”:一旦你踏上失败的轨道,你几乎永远不会回头。



本文内容整理自Bruce Eckel在WOT的演讲稿及PPT。


关注“大数据”(ID:hzdashuju)并在后台回复bug,可下载完整版PPT

关注“大数据”(ID:hzdashuju)并在后台回复20,可参与寻找"黑皮书"活动,领取当当购书券

点击阅读原文,可查看&购买Bruce Eckel著作《Java编程思想》



推荐阅读


用《复联3》的豆瓣评分教会你正确使用条形图、饼图、漏斗模型

入门干货:从《权力的游戏》战斗场景中搞懂数据抽样和过滤

别被数据带进沟里:这才是应用数据的正确姿势!

大数据没用?!张小龙:我们很少看统计数据!



Q: 想想你有多少时间浪费在bug上了?

欢迎留言与大家分享

觉得不错,请把这篇文章分享给你的朋友

转载 / 投稿请联系:baiyu@hzbook.com

更多精彩,请在后台点击“历史文章”查看

点击阅读原文,了解更多

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存