关于bug:这-BUG绝了

2次阅读

共计 1675 个字符,预计需要花费 5 分钟才能阅读完成。

上周只上了三天班,但我也丝毫不敢懈怠,BUG 更是一个也没少写。

看着满屏幕的 ERROR,我陷入深思。为什么我写的代如此烂,无奈像大牛们写的那般优雅?

越想越自大,越想越抑郁。我感觉这样不行,肯定得振作起来。

正如一位愚人已经说过:

世间万事万物,都是有两面性的:有它光明的一面,也就有他明朗的一面;有它踊跃的一面就有他消极的一面;有他好的一面也有它坏的一面。

我的代码尽管不够优雅,但写的 BUG 还能比他人差吗?

而后我在网上搜了一下,没错,BUG 也比他人差。

软件开发历史上有哪些驰名的 BUG 呢?明天咱们就来好好聊一聊,涨涨奇怪的知识点。

第一个 BUG

上图中有一只飞蛾被贴在了一张纸上,这可不是某个人的非凡喜好,而是计算机的第一个 bug。

它导致了哈佛 Mark II 计算机中的继电器短路。Grace Murray Hopper 找到了它,并把它放在了日志中。

如果没有这个 bug,咱们可能对计算机中的谬误就有不同的说法了。

这可能是最驰名的计算机谬误了。

500 英里外的邮件

一位国外做邮件服务的管理员,有用户向他埋怨说:他们不能发送超过 500 英里间隔的电子邮件。

这不是扯淡吗?这可是互联网业务,怎么还跟理论间隔无关了。

管理员一听也是一脸懵逼,基本不置信。依据程序员法令即可推理:原来还好好的呢。

有一位用户还特意做了一张邮件发送失败的地图。地图上显式,邮件的送达区域半径比 500 英里就多那么一点点:半径内的收件人,全收到了,之外的,全失败了。

看来是真的有这个问题,还是得排查啊。到底是怎么回事呢?

原来是一次软件降级导致近程服务器超时工夫被设为 0。在一个具备典型负载的特定机器上,零超时意味着如果连接时间略微超过 3 毫秒,服务器就会终止连贯。

而以光速流传的电信号,在 3 毫秒的工夫内所能达到的间隔大概是:

0.003 * c (光速) = 558.84719 miles

星期三解体的零碎

一家医院用来监控病人衰弱的数据库,每到周三,会本人解体。

我就不一样了,我是周一到周四都会解体。只有周五状态失常,因为马上就要修周末了。

说回这个零碎,该零碎记录日志是用 C 格调的代码编写的,把日志字符串记录到了一个固定长度的缓冲区中,其中日志工夫一栏,格局例如「Monday, July 17, 1997, 10:38:47.123」。

看到这是不是有点灵感了,必定是跟工夫有关系,让咱们把信息再明确一下:

星期 长度
Sunday 6
Monday 6
Tuesday 7
Wednesday 9
Thursday 8
Friday 6
Saturday 8

这样的话就清晰了,起因就是周三的字符串长度更长,在这一天,缓冲区恰好溢出了。

这 BUG,还真的就是这么奇妙。

《江南 Style》爆表

这个 BUG 可能很多同学都晓得,也就是几年前的事件。

鸟叔的一首《江南 Style》火遍寰球,顺便爆出了 YouTube 的一个 BUG。

起因就是 YouTube 的计数器之前应用的是 32 位整数。32 位整数确定了它能够计数的最大可能点击量为 2,147,483,647。

YouTube 的程序员可能都没想到,还能有一个视频的点击量能超过这个数?

《江南 Style》视频点击量超过了最大值,咱们就失去了驰名的《江南 Style》YouTube BUG。

当初,YouTube 的视频计数器改用 64 位整数,这意味着视频最大观看人数为 922 万万亿。

YouTube 程序员:我看看还有谁?

看到这几个 BUG 之后,我的指标就扭转了,不再是写出优雅的代码,而是写出奇妙的 BUG。

我要在零碎中暗藏一些「奇思妙想」,给我的继任者留下一个又一个惊喜。加油~

以上就是本文的全部内容,如果感觉还不错的话欢送 点赞 转发 关注,感激反对。


举荐浏览:

  • 计算机经典必读书籍
  • 技术博客: 硬核后端开发技术干货,内容包含 Python、Django、Docker、Go、Redis、ElasticSearch、Kafka、Linux 等。
  • Go 程序员: Go 学习路线图,包含根底专栏,进阶专栏,源码浏览,实战开发,面试刷题,必读书单等一系列资源。
  • 面试题汇总: 包含 Python、Go、Redis、MySQL、Kafka、数据结构、算法、编程、网络等各种常考题。
正文完
 0