我決定談談世界上最有名的蟲:BUG !
BUG 困擾了一代又代的程式設計師,不論是傑出的電腦科學家,還是像Linus Torvalds(Linux內核創始人) 、Bill Joy(傳說三天寫出BSD的前身,vi和csh的作者)等神一樣的傳說,抑或你我芸芸程序猿,都是BUG 騷擾的對象。 BUG 是絕對狂熱的好戰分子,具有永不停歇的戰鬥慾望,它潛伏在程式設計師的周圍,一雙小眼賊亮賊亮,在你百密一疏時出其不意一擊奏效。而無論你是鋼筋鐵骨,還是羊脂玉體,只要被這隻蟲子襲擊(看過《木乃伊》的話,對聖甲蟲一定印象深刻),就得褪上三層皮,更有什者,很可能鈸入獄、命喪黃泉或煙消玉損。
軟體界致命的BUG事件
其實,BUG造成的悲劇天天都在上演,這裡我們先舉幾個比較著名的例子。
作為程式設計師,我認為開發 ATM 機的公司應當負有責任,他們應當賠償客戶(即銀行)的損失,是他們的軟體 BUG 導致了這個案件。但在銀行這種強力機構面前,個人的聲音微不足道,很難把兩者放在同一個天平上來考慮。這中間到底有著怎樣的曲折,時過境遷,我們已無法考慮。但是,身為程序猿,我們還是得引起警覺啊,很多時候, BUG 會帶來直接的經濟損失和嚴重的法律後果。雖然你可以辯稱技術無罪,但子不殺伯仁,伯仁因你而死。
錘子手機預約數鬧劇
2014 年國慶假期期間,錘子手機4G 版現身天貓商城頁面顯示該機預計將在10 月18 日正式開賣,售價為3500 元。據說備貨量為 10000 台。據說很快天貓商城頁面顯示預約人數超過 8 萬。
後來,有網友爆料稱從頁面源代碼中發現 4G 版錘子手機的預約人數有水分,頁面顯示的數字是實際預約人數的三倍,從而再度把錘子手機推到了風口浪尖上。
後來,天貓對這事件做出了正面回應。天貓表示,截至 10 月 7 日,錘子手機 4G 版的預約用戶數為 62682 人,但在 10 月 8 日,系統調用一個數據端口時,意外將前端該頁面動態數據顯示「清零」。
為了盡可能讓預約資料還原真實,天貓決定將10月8 日起的新預約數,做了「乘以三」的處理,以便後期預約數能快速接近真實資料…
……
注意我標紅的文字,如果天貓的回應符合實際情況,那麼,其實,這是一個BUG !
真不夠老羅忙活的啊。老羅10月19日在微博上正式回應:預定數據造假的事,跟我們沒有一絲一毫的關係,我們在這件事中扮演的唯一角色,就是躺槍。
這是要上演羅生門的節奏嗎?親們。
對於此事,我不能不感慨:不怕神一樣的對手,就怕豬一樣的隊友……不怕豬一樣的隊友,就怕神一樣的網友——據說這個造假的BUG是因為某位測試人員發現預約數總是3的倍數而發現的。
蘋果iOS 8.0.1 更新撤銷
蘋果,神壇上的蘋果,以極致用戶體驗而載譽江湖的蘋果,也因為BUG 而被釘在了恥辱柱上:
(2014年)9月25日消息:蘋果在今天早些時候發布了iOS8.0.1 更新,目的是決解當前版本中的多處Bug ,但是沒想到的是更新補丁帶來了更多的Bug ,最後蘋果撤回了該次升級。
據了解,本次受到影響的主要是 iPhone 6、 iPhone 6 Plus 這兩款最新的設備,後果是只能接受移動網絡無信號,而且 TouchID 也不能用了。因此建議還沒升級的用戶還是不要升級了,而已經悲劇了的用戶目前只能等待蘋果推出修復補丁。
……
有人說這是賈伯斯不在的後遺症……真不知道這群人為什麼總是把賈伯斯拿出來說事兒!其實,這就是一次軟體 BUG ,從程式猿的角度來看,這他娘再正常不過了,和賈伯斯有一毛錢關係嗎!
再說了,這事兒又不是單單蘋果一家才有,你看人家微軟,根本都不當一回事兒,補丁一個一個一個又一個的發,堵的就是漏洞,改的就是BUG ,這都是那幫程序猿惹的禍,與天上的月亮沒有關係。
心臟滴血漏洞
2014年4月9日,Heartbleed(意為「心臟出血」)的重大安全漏洞被曝光,一位安全行業人士在知乎上透露,他在某著名電商網站上用這個漏洞嘗試讀取數據,在讀取200次後,獲得了40多個用戶名、7個密碼,用這些密碼,他成功地登入了該網站。
……
Heartbleed 漏洞,這項嚴重缺陷(CVE-2014-0160)的產生是由於未能在memcpy() 呼叫受害用戶輸入內容作為長度參數之前正確進行邊界檢查。攻擊者可以追蹤OpenSSL 所分配的 64KB 快取、將超出必要範圍的位元組資訊複製到快取當中再返回快取內容,這樣一來受害者的記憶體內容就會以每次 64KB 的速度進行洩漏。
OpenSSL ,著名吧,開源吧,安全吧,它支撐的互聯網站點就像天上的星星一樣,數都數不過來。就這麼一個知名、開源、強大的密碼庫,一樣有 Bug 。
BUG 無所不在!
BUG 對程式猿的追逐,對軟體的痴迷,比現在的死忠粉還要厲害,那簡直是上窮碧落下黃泉,不論你在哪裡,上天入地,我都會與你在一起,不離、亦不棄。
無BUG不生活
電腦先驅Maurice Wikes 回憶起1949 年他在英國劍橋工作的情形,在拖著打孔紙帶上樓給雛形電腦EDASC 裝載程式時,他看到了自己的未來:
我強烈的意識到,生命中剩下的好日子,都將耗費在給自己的程序找錯誤上頭。
Bug的定義
Bug一詞的英文原意是「臭蟲」或「蟲子」。但對程式設計師來講,Bug意味著錯誤、缺陷、問題、漏洞、未依需求實現、不符合需求預期或延伸等等等……那麼,Bug究竟是什麼呢?
我媳婦是搞測試的,軟體測試這塊最著名的一本書就叫做《Software Testing(軟體測試)》,它裡面是這麼描述BUG的:
The software doesn't dosomething that the product specification says it should do.
The software does somethingthat the product specification says it shouldn't do. The soft thatdomment the thatmentnmentn 集.The software 做viewedby the end user as just plain not right.作為開發人員,當然要看得懂E文了……其實還有一個粗暴點兒的說法:BUG就是錯誤。 Bug是怎麼來的《聖經》中有「義人」這個說法,我們有「人無完人,金無足赤」的說法…人是媽媽生出來的(女媧造人時除外)-你看我總是加各種說明以便堵住漏洞,這樣寫文章真是很累……這實在是和我的開發習慣有關:我總是習慣防禦性編程,預先考慮各種錯誤,在編碼期間就努力消除它們發生的條件…我們說,人是人他媽生的,妖是妖他媽生的,而軟體是程式設計師生的。 爸爸媽媽在準備懷孕時,很多爸爸會戒菸戒酒戒加班,所謂封山育林也。媽媽會補葉酸測排卵期計算最佳受孕時間…總之一句話,優生優育。可是,孩子出生後仍會有毛病,隨著孩子長大,各種毛病都會顯現出來。有的孩子有先天缺陷,像是原發性高血壓、先天性心臟病、兔唇、失智、智障……有的孩子長著長著有毛病了,近視、斜視、小兒麻痺、跛腳、自閉症… ……身為父母,這都是我們很難接受的事實,可是必須面對和接納。 軟體是程式設計師的孩子,在生它之前,你可曾封山育林、可曾熟悉自己的生理週期?哇哈哈哈哈,太扯淡了不是!包不同(《天龍八部》中慕容復四大家臣之一,非常有趣)搖搖頭說,非也非也。然也!開發軟體其實也要經歷這些過程,更重要的是,我們一定要意識到:程式設計師在生產軟體,也在生產BUG! 再屌的程式設計師,寫出來的軟體也有BUG。 BUG就是軟體與生俱來、不可脫逃的好基友,就在那場說走就走的旅行的一開始,它們就情根深種難分難捨了……So,Bug是程式設計師寫出來的…不管你願不願意承認,事實就是這麼令人沮喪。連MauriceWikes都承認了這一點,你就別倔犟了吧親。 免費領取LAMP兄弟連原創PHP影片教學光碟/《細說PHP》精要版,詳情諮詢官網客服:http://www.lampbrother.net
http://yun.itxdl.cn/online/cto/index.php?u=5 這,是牛X的課程 CTO課程CTO
課程課程http://yun.itxdl.cn/online/server/index.php?u=5
行動網路伺服器端發展課程http://yun.itxdl.cn/online/weixin/index.php?u=5
微信開發課程http://yun.itxdl.cn/online/yingxiao/index.php?u=5
微行銷課程http://yun.itxdl.cn/online/phpcms/index.php?u=5phpcms
二次開發課程 |