首頁 > 科技

Google程式設計師少打一個字元,後果很驚人……

2021-08-26 03:02:32

近期谷歌推送了新版本,但是沒想到這次更新就出現了重大Bug。

使用者反映安裝了新版本之後,自己的電腦陷入了無限重啟的狀態,最終恢復了出廠設定才好。

我們都知道Chrome OS是一款開源的作業系統,一名使用者對照其源碼發現,只是因為少打了一個字元「&」。

谷歌的開發將Chrome OS的 Cryptohome VaultKeyset中的一個條件語句寫錯了,原本是:

if (key_data_.has_value() && !key_data_->label().empty()) {

寫成了:

if (key_data_.has_value() & !key_data_->label().empty()) {

網友們的bug經歷

有一位曾經在搜狐工作的網友表示,自己當年憑藉一己之力毀掉了一個團隊一年多的成果:

還有網友:某大型電商平臺,有一天突然收到店主反饋,發現自己收到的訂單和商品列表都不是自己的。於是各位領導都來看這個問題,在一堆大佬的注視下,測試情況,一個個退回。

後續又有使用者來投訴,直接電話聯絡,遠端控制電腦,發現操作起來巨慢,於是順口問了一下使用者的網路是什麼網路。

結果他說是:」某城寬頻」,一瞬間,有點感覺了,繼續問其他幾個投訴的客戶都是」某城寬頻」,然後我們打電話到那個寬頻的運營商,得到的回覆是」年底了,為了省流量,他們做了一部分快取」。

如何減少Bug

開發想要避免bug是不太可能了,我們就說怎麼能減少在開發中的bug吧。從工作流程的角度來說,我們從需求評審,到評估優先順序,到實際開發,測試等各個流程都需要三方一致。

其實在寫完程式碼之後,一個有經驗的程式設計師就已經開始寫待單元測試了。只有那種「懶」程式設計師,才會一直等著測試找問題。

另外可以檢視這篇文章《「程式碼檢查指南」送給遇到BUG就慌得你》。

其次就是一個好的開發,其實是要懂測試的,相對而言一個好的測試也要懂程式碼。在寫程式碼的時候我們就要規避一些低階語法的問題,比如是不是少寫了符號,變數名、大小寫的問題。

還有程式碼的邊界問題最容易出錯,我們每次寫程式碼的時候是否有注意到?

建議各位還在初級階段的程式設計師,碰到每一次的問題都記錄下來。日積月累就增長了自己處理問題的能力。

其次就是你是否有自己的函數庫?在開始寫模組程式碼之前,寫一些虛擬碼也是很好的方法。希望各位程式設計師,大吉大利!下月沒有bug!


IT145.com E-mail:sddin#qq.com