這 BUG,絕了
上周只上了三天班,但我也絲毫不敢懈怠,BUG 更是一個也沒少寫。
看著滿屏幕的 ERROR,我陷入沉思。為什么我寫的代如此爛,無法像大牛們寫的那般優(yōu)雅?
越想越自卑,越想越抑郁。我覺得這樣不行,一定得振作起來。
正如一位哲人曾經(jīng)說過:
世間萬事萬物,都是有兩面性的:有它光明的一面,也就有他陰暗的一面;有它積極的一面就有他消極的一面;有他好的一面也有它壞的一面。
我的代碼雖然不夠優(yōu)雅,但寫的 BUG 還能比別人差嗎?
然后我在網(wǎng)上搜了一下,沒錯,BUG 也比別人差。
軟件開發(fā)歷史上有哪些著名的 BUG 呢?今天我們就來好好聊一聊,漲漲奇怪的知識點。
第一個 BUG

上圖中有一只飛蛾被貼在了一張紙上,這可不是某個人的特殊愛好,而是計算機的第一個 bug。
它導致了哈佛 Mark II 計算機中的繼電器短路。Grace Murray Hopper 找到了它,并把它放在了日志中。
如果沒有這個 bug,我們可能對計算機中的錯誤就有不同的說法了。
這可能是最著名的計算機錯誤了。
500 英里外的郵件
一位國外做郵件服務的管理員,有用戶向他抱怨說:他們不能發(fā)送超過 500 英里距離的電子郵件。
這不是扯淡嗎?這可是互聯(lián)網(wǎng)業(yè)務,怎么還跟實際距離有關了。
管理員一聽也是一臉懵逼,根本不相信。根據(jù)程序員法則即可推理:原來還好好的呢。

有一位用戶還特意做了一張郵件發(fā)送失敗的地圖。地圖上顯式,郵件的送達區(qū)域半徑比 500 英里就多那么一點點:半徑內的收件人,全收到了,之外的,全失敗了。
看來是真的有這個問題,還是得排查啊。到底是怎么回事呢?
原來是一次軟件升級導致遠程服務器超時時間被設為 0。在一個具有典型負載的特定機器上,零超時意味著如果連接時間稍微超過 3 毫秒,服務器就會終止連接。
而以光速傳播的電信號,在 3 毫秒的時間內所能到達的距離大約是:
0.003 * c (光速) = 558.84719 miles
星期三崩潰的系統(tǒng)
一家醫(yī)院用來監(jiān)控病人健康的數(shù)據(jù)庫,每到周三,會自己崩潰。
我就不一樣了,我是周一到周四都會崩潰。只有周五狀態(tài)正常,因為馬上就要修周末了。
說回這個系統(tǒng),該系統(tǒng)記錄日志是用 C 風格的代碼編寫的,把日志字符串記錄到了一個固定長度的緩沖區(qū)中,其中日志時間一欄,格式例如「Monday, July 17, 1997, 10:38:47.123」。
看到這是不是有點靈感了,肯定是跟時間有關系,讓我們把信息再明確一下:
| 星期 | 長度 |
|---|---|
| Sunday | 6 |
| Monday | 6 |
| Tuesday | 7 |
| Wednesday | 9 |
| Thursday | 8 |
| Friday | 6 |
| Saturday | 8 |
這樣的話就清晰了,原因就是周三的字符串長度更長,在這一天,緩沖區(qū)恰好溢出了。
這 BUG,還真的就是這么巧妙。
《江南 Style》爆表
這個 BUG 可能很多同學都知道,也就是幾年前的事情。
鳥叔的一首《江南 Style》火遍全球,順便爆出了 YouTube 的一個 BUG。
原因就是 YouTube 的計數(shù)器之前使用的是 32 位整數(shù)。32 位整數(shù)確定了它可以計數(shù)的最大可能點擊量為 2,147,483,647。
YouTube 的程序員可能都沒想到,還能有一個視頻的點擊量能超過這個數(shù)?
《江南 Style》視頻點擊量超過了最大值,我們就得到了著名的《江南 Style》YouTube BUG。
現(xiàn)在,YouTube 的視頻計數(shù)器改用 64 位整數(shù),這意味著視頻最大觀看人數(shù)為 922 萬萬億 。
YouTube 程序員:我看看還有誰?
看到這幾個 BUG 之后,我的目標就改變了,不再是寫出優(yōu)雅的代碼,而是寫出巧妙的 BUG。
我要在系統(tǒng)中暗藏一些「奇思妙想」,給我的繼任者留下一個又一個驚喜。加油~
以上就是本文的全部內容,如果覺得還不錯的話歡迎點贊,轉發(fā)和關注,感謝支持。
推薦閱讀:
- 計算機經(jīng)典必讀書籍
- 技術博客: 硬核后端開發(fā)技術干貨,內容包括 Python、Django、Docker、Go、Redis、ElasticSearch、Kafka、Linux 等。
- Go 程序員: Go 學習路線圖,包括基礎專欄,進階專欄,源碼閱讀,實戰(zhàn)開發(fā),面試刷題,必讀書單等一系列資源。
- 面試題匯總: 包括 Python、Go、Redis、MySQL、Kafka、數(shù)據(jù)結構、算法、編程、網(wǎng)絡等各種常考題。

浙公網(wǎng)安備 33010602011771號