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

导读: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编程思想》

原文发布于微信公众号 - 大数据(hzdashuju)

原文发表时间:2018-05-20

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏用户2442861的专栏

JAVA月薪两万的一些讨论

作者:匿名用户 链接:https://www.zhihu.com/question/39890405/answer/83676977 来源:知乎 著作权归...

36310
来自专栏云计算D1net

2014云数据安全技巧总回顾

云计算现正是当今IT界的宠儿,但安全方面的担忧仍是企业迟迟未肯采纳的原因。这些顶级安全技巧可以帮助IT团队快速热身,熟悉这项科技。 没人否认云计算的这些优点,灵...

282100
来自专栏zhisheng

做程序员的这五年

到昨天为止,做程序员,已经整整五年。最近半年来,我时常思考我走过这五年,反思我的职业工作,反思我的生活,我选择错了很多,也做错了很多。有些道理,到最近才幡然醒悟...

17420
来自专栏JAVA高级架构

读书单

9330
来自专栏互联网数据官iCDO

App的情势越来越悲观——谁动了我的奶酪?

编者注:随着移动设备的普及,移动化的大浪潮席卷整个互联网。众多品牌主争相开发自己独立的App,为此不惜在投入大量营销费用。而App-Install ads(移动...

34750
来自专栏花叔的专栏

头号小游戏玩家 小游戏科普指南

参与小游戏首发计划,也正试着做一些别的小游戏,不总结点什么好像不大好,但一总结又发现好多内容,只好通过“2W1H”的方式来抛砖引玉一下(以下为科普内容): ? ...

35070
来自专栏编程

编程语言遇上超级英雄,谁才是真的本命?

每一种编程语言都有自己的独特风格和个性,这种个性的张扬往往会吸引一群人,变成一个社区的狂欢。如果把编程语言比作超级英雄,你觉得哪些英雄是你心中的本命呢?笔者根据...

281100
来自专栏互联网数据官iCDO

使用归因模型前,要先填上这8个坑!

仲志成,iCDO原创志愿者 在互联网数据领域,归因模型常被提及。如何用对数据,如何真正让归因模型产生价值,作者为我们总结了8个坑。让我们一起来看看自己有没有落入...

56080
来自专栏java一日一条

Java:过去、未来的互联网编程之王

Java对你而言是什么?一门你大学里学过的语言?一个IT行业的通用语言?你相信Java已经为下一次互联网爆炸做好了准备么?Java 一方面为嵌入式计算做了增强,...

12720
来自专栏码神联盟

碎片化 | 视频课程-如何写一份漂亮的简历(JAVA开发工程师)

如清晰度低,可转PC网页观看高清版本: http://v.qq.com/x/page/m0501xps9c7.html 大咖聊简历 个人信息:(无需照片)...

64570

扫码关注云+社区

领取腾讯云代金券