歷史上最嚴重的10個程式設計錯誤

在其傳奇的過去,編碼也造成了破壞。一些糟糕程式碼的例項在很大程度上造成了災難。以下是10個歷史上最嚴重的程式設計錯誤。...

代碼幾乎無處不在。現代計算機的出現是在20世紀40年代。在其豐富的歷史中,編程使人們能夠更好地交流,並導致了許多行業的進步。從太空旅行到電信和醫療保健的一切都被代碼徹底改變和影響。

worst-programming-errors-featured

另外,編程可以給我們上寶貴的人生課。然而,在其傳奇的過去,編碼也造成了破壞。一些糟糕代碼的實例在很大程度上造成了災難。以下是10個歷史上最嚴重的編程錯誤。

1千年蟲

2000年的錯誤,又名千年蟲或千年蟲,是一個編碼問題,預計將導致計算機混亂。在90年代,大多數計算機程序都以縮寫形式列出了四位數的年份。所以1990年讀90年,1991年寫91年,等等。通過將四位數的年份縮短為兩位數,編碼員因此節省了寶貴的內存。但計算機無法將2000年簡單地識別為00年。使問題進一步惡化的是,2000年是閏年。某些軟件應用程序沒有考慮到額外的一天。

許多人擔心千年蟲可能會使全世界的電腦和電子設備癱瘓。我記得我的第一個DVD播放機有一個閃亮的“Y2K兼容”標籤。雖然2000年從軟件方面來說相當平淡無奇,但更新整個行業的計算機和應用程序大約需要3000億美元。計算機沒有崩潰。生活照常進行。但不是沒有大量的金錢和工作,根據Slate的報告,這可能是一種浪費。

為什麼這是最嚴重的編程錯誤之一:2000年的恐慌代價極高,高達3000億美元。另外,資源被重新定向以解決這個潛在的問題。

2心血蟲

heartbleed-bug

Heartbleed Bug出現在OpenSSL庫中,是一個危險的安全漏洞。傳輸層安全(TLS)協議採用OpenSSL加密庫。由於它在TLS中的廣泛應用,心血傳播很快。這個錯誤允許互聯網上的任何人讀取運行受影響的OpenSSL迭代的機器上的內存。最多可讀取64 kb的系統內存。雖然Heartbleed Bug在2014年向公眾披露,但它在2012年推出。

由於TLS heartbeat擴展中缺少邊界檢查而導致錯誤的輸入驗證不正確。由於它是心跳擴展中的一個bug,因此產生了Heartbleed這個名字。《註冊報》2014年的一篇文章報道,1.5%最流行的TLS支持站點仍然容易受到Heartbleed bug的攻擊。然而,除了OpenSSL之外的TLS實現沒有受到影響。因此,Windows版本的TLS和Mozilla的網絡安全服務不受Heartbleed Bug的影響。一個修補程序最終修復了OpenSSL版本1.0.1g的問題。通過添加邊界檢查來防止緩衝區過度讀取,Heartbleed Bug被成功修補。

為什麼這是最嚴重的編程錯誤之一:Heartbleed Bug造成了重大的安全威脅。從啟動到修補之間的時間讓受影響的系統易受攻擊達數年之久。任何時候出現計算機漏洞問題,都會造成巨大的數據安全隱患。

三。魔獸世界病毒太誇張了

WoW-Corrupted-Blood

魔獸世界曾經遭受過一種不同類型的計算機病毒。2005年,一場數字瘟疫滲透到了一些遊戲服務器。成千上萬的人物都成了血病毒的犧牲品。哇開發者暴雪介紹了哈卡,血之神。相當多的敵人用敗壞的血液感染了人物。雖然血液感染最初是為了折磨靠近哈卡身體的玩家,但玩家與玩家之間的轉移發生在了王國之外。這種無意中傳播遊戲中寵物產生的血液病毒的手段。此外,非玩家字符(NPC)成為載體。

阿克蒙德成為第一個被感染的服務器。低級角色瞬間死亡。即使是強大的人物也不會持續太久。雖然一個編碼故障通過npc和pets使病毒永久化,但病毒並沒有計劃在哈卡王國之外發布。雖然有成千上萬的玩家死亡,但魔獸世界並沒有永久死亡。暴雪通過滾動服務器重啟修復了血液病毒。但在玩家屍體散落魔獸世界之前。

為什麼這是最嚴重的編程錯誤之一:好吧,所以魔獸世界可能不會出現數據安全問題或危及生命的場景——但遊戲玩家會認真對待他們的娛樂。暴雪花了數小時重置服務器。有趣的是,遊戲中的玩家行為模仿了現實世界中可能發生的流行病,肆虐的爆發、恐慌和文明的崩潰。沒玩過哇?開始使用這個完整的新手指南。

4塞拉克-25

儘管許多編程錯誤會導致漏洞或遊戲玩家死亡,但糟糕的代碼實際上會導致死亡。Therac-25災難發生在Therac-25放射治療機上。由加拿大原子能公司生產的Therac-25因意外輻射過量導致至少6名患者死亡。調查發現,糟糕的軟件和系統開發不足導致輻射過量。這些主要是由於執行自動化軟件測試的困難造成的。

Therac-25輻射過量可提醒您創建易於測試的代碼。殺人機器聽起來像科幻小說,但Therac-25事件卻證明了這一點。但這確實是人類在編碼上的錯誤導致的,導致了這些問題。包括南希·萊維森在內的專家發現,缺乏經驗的代碼員創造了buggy軟件。此外,只有一個程序員創建了該軟件,它基於來自Therac-6和Therac-20的代碼。

為什麼它是最糟糕的編程錯誤之一:每當有人喪生時,編程錯誤絕對是最糟糕的代碼之一。

5遠古水手飛行1

美國宇航局使用了相當多的技術,它的新視野探測器使用了一個PlayStation CPU。NVIDIA解決方案架構和工程副總裁馬克·漢密爾頓(Marc Hamilton)定期在博客上介紹NASA使用NVIDIA硬件的情況。“水手1號”火箭發射時搭載了一個預定探索金星的太空探測器。不管發射後有多輕微,火箭都偏離了預定的飛行路線。“水手1號”在起飛後不久被摧毀。

一個程序員的小錯誤導致了水手1號的錯誤。儘管報道不盡相同,但有跡象表明缺少一個連字符。根據美國宇航局檔案文件,“水手1號飛行後審查委員會認定,由於數據編輯程序中的編碼計算機指令中省略了連字符,導致錯誤的制導信號傳輸到航天器上。”著名作家阿瑟C.克拉克(2001:太空漫遊)將水手1號災難稱為“史上最昂貴的連字符”

為什麼這是最嚴重的編程錯誤之一:水手1號的錯誤本可以很容易避免。公共服務公告:親愛的開發者,請測試您的軟件。

6at&t網絡癱瘓

at&t-network-down

你現在能聽見我說話嗎?不,1990年1月15日,AT&T超過50%的網絡崩潰。9小時內,7500萬個電話無人接聽。雖然最初的報告指責黑客,但真正的罪魁禍首更糟:標準軟件更新。下次投訴Windows10更新時請記住這一點。一行代碼中的一個錯誤使AT&T的網絡癱瘓了幾個小時。一個開關自動復位,但是這個錯誤意味著第二個開關發送了另一條消息。從本質上講,多米諾骨牌效應開始了,網絡繼續重複它的錯誤。最終,AT&T通過降低網絡負載設計了一個解決方案。然後開關自行復位。

儘管進行了大量的測試,但一句話就讓網絡癱瘓了。這個程序是用C語言編寫的。if子句中的break語句仍然嵌套在switch子句中。1990年美國電話電報公司的大停電似乎是個簡單的問題。很多未接來電,或者像今天這樣,一堆未接短信、Instagram、Twitter和Snapchat通知。然而,缺乏溝通帶來了巨大的金錢影響。像美國航空公司這樣的公司遭受了經濟損失。由於停電,美國航空公司接到的電話減少了三分之二。1990年的大修是一個很好的例子,說明了為什麼測試很重要。此外,美國電話電報公司(AT&T)的停機提醒人們,科技與經濟之間存在著內在的聯繫。

為什麼這是最嚴重的編程錯誤之一:AT&T的網絡不僅崩潰了,而且幾個小時的癱瘓也造成了金融危機。

7活死人日:聖瑪麗慈善醫院

st-mercys-faux-dead

2003年,一個軟件故障錯誤地“殺死”了8500人。密歇根州大急流城的聖瑪麗慈善醫療中心錯誤地報告說,許多病人死於他們的病人管理軟件系統故障。與Therac-25的死亡事故相比,這場糟糕的代碼災難是相當無害的,因為實際上沒有人死亡。然而,讀到你自己的死亡是令人不安的——尤其是當你還活著的時候。

虛假死亡報告並不侷限於病人。這些信件發給了保險公司和社會保障辦公室。由於社會保障和保險提供者確保符合條件的患者享有醫療保險,這就提出了一個相當大的問題。聖瑪麗慈善會的員工將這一錯誤告知了病人、**機構和保險公司。最終,編程錯誤沒有引起太多的注意。目前還不清楚編碼錯誤是否被糾正過。然而,沒有出現更多的虛假死亡報告。聖瑪麗慈悲醫院只是切換了病人管理軟件。

為什麼這是最嚴重的編程錯誤之一:謝天謝地,沒有人真的死了。但確保醫療保險持續覆蓋的損害控制是一團糟。

8囚犯:提前釋放

prison-accidental-release

密歇根州在2003年至2005年間遭遇數據處理故障。在這段時間裡,由於電腦程序的缺陷,密歇根州的23名囚犯提前獲釋。幸運的囚犯從39天到161天的刑期中受益匪淺。雖然任何意外終止監禁都是有問題的,但謝天謝地,這些都是較小的違規行為,比如毒品和**指控。

軟件通常旨在使過程自動化。通過減少體力勞動,我們的生活理論上更容易。然而,密歇根囚犯提前出獄的案例再次證明了軟件測試的價值。一個小的編程錯誤帶來了巨大的影響,特別是在這個例子中。試想一下,如果獲釋的囚犯涉獵了更嚴重的罪行。

為什麼這是一個最嚴重的編程錯誤:這個事件本來可以更糟,但提前釋放囚犯是可怕的。

9哈特福德體育館瀑布

儘管據報道,1978年哈特福德體育館倒塌造成了9000萬美元的損失,但情況可能更糟。哈特福德體育館在球迷們離開場館數小時後倒塌。它的鋼格屋頂無法承受溼雪的重量。由於一個簡單的編程錯誤,一座建築物倒塌了。用於設計哈特福德體育館的CAD軟件的編碼員未能考慮多個變量。相反,軟件程序員假設鋼屋頂支架只會面臨純壓縮。

工程師面臨許多挑戰。使用軟件應該使他們的工作更容易。然而,未能考慮到幾個變量會導致巨大的挑戰。雖然你可以簡單地修補一個錯誤在雷工,CAD軟件直接影響現實世界的結構。

為什麼這是最嚴重的編程錯誤之一:好吧,至少沒人死。但估計損失9000萬美元的經濟損失是巨大的。

10我有99個問題,奔騰就是其中之一

一般來說,英特爾處理器的性能優於AMD處理器。然而,AMD提供了極好的性價比。但是在1994年,英特爾的奔騰微處理器遇到了一個大問題。486DX和奔騰CPU採用浮點單元(FPU)。這個FPU是一個數學協處理器。上一代Intel CPU使用整數處理數學。通過內置FPU,下一代奔騰芯片有望大大加快數值計算速度。

奔騰FPU採用了基數為4的STR算法。輸入的信息不正確導致計算稍有錯誤。但是,即使是一個小的變化也可能意味著巨大的問題,就像哈特福德坍塌或Therac-25所展示的那樣。大約千分之五的參賽者被排除在外,從而放棄了奔騰的長師能力。英特爾官方宣稱,腳本錯誤導致查找條目出現問題。不管怎樣,奔騰的數學都是由糟糕的代碼造成的。

為什麼這是一個最嚴重的編程錯誤:幾個重要的數字可能看起來不多,但在工程或醫療精度的情況下,這是必不可少的。

代碼不好:編程錯誤發生

編程錯誤從一開始就出現了。隨著代碼在各種領域的使用不斷擴大,這種趨勢可能不會很快消失。

有很多編程錯誤的例子。有些相當無害,就像魔獸世界的蟲子。另一些死亡要麼是真實的(Therac-25),要麼是想象的(聖瑪麗)。不要讓這些著名的例子阻止你編寫代碼。請參閱本指南以選擇正確的web編程語言。

你還記得哪些壞代碼的歷史例子嗎?請在下面留下您選擇的編程錯誤的評論!

圖片來源:nouskrabs和McIek viaShutterstock.com網站

  • 發表於 2021-03-15 13:15
  • 閱讀 ( 40 )
  • 分類:程式設計

你可能感興趣的文章

20個ted關於程式設計的演講每個人都必須觀看

... 歷史與未來 ...

  • 發佈於 2021-03-12 21:17
  • 閲讀 ( 49 )

如何透過3個簡單的步驟構建javascript幻燈片

... 如果你想知道為什麼要費心計劃,那麼看看這些歷史上最嚴重的程式設計錯誤。這個專案不會讓任何人喪命,但在編寫更大的程式碼之前,對程式碼和規劃過程有一個紮實的瞭解是至關重要的——即使它只是一個粗略的...

  • 發佈於 2021-03-13 17:20
  • 閲讀 ( 53 )

過去一年最嚴重的10個錯誤

...但該公司的一些決定,如積極的免費升級提議,已經成為歷史。 ...

  • 發佈於 2021-03-16 08:59
  • 閲讀 ( 41 )

維基百科的編輯大戰:最有趣、最怪異、最偉大的維基大戰

...熱帶風暴澤塔。它形成於12月30日,消散於1月7日。它成為歷史上第二個橫跨兩年的大西洋熱帶風暴。 ...

  • 發佈於 2021-03-22 10:48
  • 閲讀 ( 50 )

什麼是unix時代?unix時代是什麼時候?

...。我們非常需要表現的是接近現在的時間,而不是遠古的歷史或遙遠的未來。即使對於日曆之類的應用程式,也很少需要表示未來幾十年以後的日期。 ...

  • 發佈於 2021-03-26 15:47
  • 閲讀 ( 45 )

有史以來最嚴重的4次資料洩露

... 今天,讓我們看看歷史上最嚴重的資料洩露及其影響。 ...

  • 發佈於 2021-03-28 14:15
  • 閲讀 ( 55 )

去看看這篇關於twitter駭客的調查吧

...克拉克(Graham Ivan Clark)與另外兩人一起被指控犯下Twitter歷史上最嚴重的駭客行為,其中包括埃隆·馬斯克(Elon Musk)、巴拉克·奧巴馬(Barack Obama)和比爾·蓋茨(Bill Gates)的眾多知名賬戶被接管,以推廣比特幣騙局。在一項...

  • 發佈於 2021-04-18 03:47
  • 閲讀 ( 45 )

桑德沃姆詳細描述了歷史上最嚴重網路攻擊的幕後黑手

...本質? 嗯,你說得很有意思。我是說,GRU在他們最近的歷史中使用了這些錯誤的標誌。但我得說,我們不知道他們對影子經紀人負責。事實上,沒有人知道影子經紀人到底是誰。在某些方面,它們是整個故事中最大的謎團。很...

  • 發佈於 2021-04-18 16:29
  • 閲讀 ( 39 )

冠狀病毒導致史上最嚴重的智慧手機市場萎縮

來自分析公司的最新資料顯示,冠狀病毒大流行導致智慧**市場出現有史以來最快的第一季度同比下滑。Counterpoint Research和C****ys都將全球出貨量的總體降幅定為13%,不過Counterpoint表示,僅在中國的降幅就達27%,而C****ys的計算則...

  • 發佈於 2021-04-19 05:51
  • 閲讀 ( 40 )

在犯罪圖書館裡收集了歷史上最嚴重的罪行

...原始碼連結上檢視全文,瞭解更多關於該網站引人入勝的歷史,以及為什麼巴茲利不得不把這一切拋諸腦後。

  • 發佈於 2021-04-24 16:48
  • 閲讀 ( 45 )
bkpc95149
bkpc95149

0 篇文章

作家榜

  1. admin 0 文章
  2. 孫小欽 0 文章
  3. JVhby0 0 文章
  4. fvpvzrr 0 文章
  5. 0sus8kksc 0 文章
  6. zsfn1903 0 文章
  7. w91395898 0 文章
  8. SuperQueen123 0 文章

相關推薦