程式設計師老在改Bug,就不能一次改好嗎?
作者丨伍杏玲
來源 | 程式人生(ID:coder_life)
程式設計師的日常三件事:寫Bug、改Bug、背鍋。連程式設計師都自我調侃道,為什麼每天都在加班?因為我的眼裡常含Bug。
但是真的有這麼多Bug要改嗎?就不能一次改完嗎?
程式設計師聽這問題後要拍鍵盤了,還!真!不!能!
使用者使用場景的不確定性
在日常生活中,即便每個物品都有使用說明書,可一千個使用者就有一千種使用方式。例如用諾基亞手機砸核桃,用iPad當切菜板,所以說程式是確定的,但使用者的使用場景是不確定性的。
各種不按套路出牌的操作會給系統帶來挑戰,例如網上有個段子說:
一個人走進一家酒吧,要了一杯啤酒
一個人走進一家酒吧,要了一杯咖啡
一個人走進一家酒吧,要了0.7杯啤酒
一個人走進一家酒吧,要了-1杯啤酒
一個人走進一家酒吧,要了2^32杯啤酒
一個人走進一家酒吧,要了一杯洗腳水
一個人走進一家酒吧,要了一杯蜥蜴
一個人走進一家酒吧,要了一份asdfQwer@24dg!&*(@
一個人走進一家酒吧,什麼也沒要
一個人走進一家酒吧,又走出去又從窗戶進來又從後門出去從下水道鑽進來
一個人走進一家酒吧,又走出去又進來又出去又進來又出去,最後在外面把老闆打了一頓
一個人走進一家酒吧,要了一杯燙燙燙的錕斤拷
一個人走進一家酒吧,要了NaN杯Null
一個人衝進一家酒吧,要了500杯啤酒咖啡洗腳水野貓狼牙棒奶茶
一個人化裝成老闆走進一家酒吧,要了500杯啤酒並且不付錢
一萬個人在酒吧門外呼嘯而過
一個人走進一家酒吧,要了一杯啤酒 ';DROP TABLE 酒吧
一個人跳進一家酒吧。
一個人蒙著眼睛,倒退著走進一家酒吧。
一個人走進一家酒吧,要了一杯美國啤酒,一杯德國啤酒,一杯比利時啤酒,一杯青島啤酒。
一個體重五百噸的人走進一家酒吧。
一個酒量五百噸的人走進一家酒吧。
一個酒量為零的人走進一家酒吧。
一個人走進一家酒吧,點了一杯啤酒,一邊喝一邊用指尖把啤酒逼出體內。
一個人來到一家酒吧門口,拿出電腦,敲了幾個命令,2^32 - 1 個測試工程師走進一家酒吧。
一個人戴著墨鏡,手持兩把 Uzi 衝進一家酒吧,對著室內一頓掃射,然後要了一杯啤酒。
一個人走進一家酒吧,要了一杯Nil,一杯Null和一杯None
一個名叫exception的人走進一家酒吧,被丟了出來 。
我走進酒吧要了一杯">_ <”
我盜用老闆身份走進了酒吧進了後臺放了一瓶我自己的酒。
我走進酒吧在吧檯放了一杯' or 1=1。
最後酒吧炸了。
軟體設計中最大的現實是:設計難以完全覆蓋現實。
一個簡單的搜尋框,測試用例高達幾十個。可以說只要使用者在使用系統,系統就存在Bug。
而程式設計師在程式設計時只能按照需求與經驗覆蓋大部分使用者的使用場景,剩下的只能是見一個Bug滅一個。
需求的不確定性
之前有“AI都會程式設計了,要程式設計師幹嘛”的言論,造成很多程式設計師產生焦慮紛紛要轉行。
等等,說這話的人肯定沒問過產品經理。
網際網路公司的兩大謊言一是程式設計師說的“沒問題,上線吧”,二是產品經理說的“就按這個做”,現實是“我還要改幾十版哦”。
產品經理自己沒想明白需求要做成什麼樣子呢,在AI做出一個百分百正確無Bug的軟體前,它學會給產品拍磚的可能性會更大。
隨著產品不斷迭代,不斷增加的程式碼自帶Bug時,還可能會給原有程式引入Bug。有時候涉及底層程式碼的修改,一旦出問題,有可能會帶來多米諾骨牌效應。
還有時候是程式好好跑著,Bug從天上來。例如聖誕節阿里的Antd彩蛋Bug,又如在2005 年日本瑞穗證券的交易員輸入錯的股價,想撤銷可被系統拒絕,導致造成400億日元的損失。後來證實系統出Bug了,這個Bug是在2000年埋的。
所以很多公司會嚴格要求在程式修改後必須經過嚴格的迴歸測試,來驗證對其他業務流程有沒有影響。
程式設計師不是機器
程式設計師是人,不是機器,人做事是主觀判斷性去做的,再加上“稟賦效應”:心裡頭自動地給自己寫的程式碼添一層濾鏡,覺得自己寫的程式碼沒有問題,所以程式設計師總找不出自己的Bug。
這導致程式設計師日常的第四件事是:挖坑填坑。有人大手一揮,一大段程式碼不寫註釋,或業務方法不用公共定義,不拆分類,一個方法寫了一千行,從此沒人敢動這些爛程式碼。也有人默默地“感謝”前任給他有活幹,一點點地將坑填上。
還有對開發流程的漠視也是導致系統Bug多的原因。有開發心想“我只是改了兩行程式碼,不影響業務流程”,心想提給測試太麻煩了,便自顧上線了。
結果線上就出Bug了。
所以公司才設定各種軟體開發規範來減少Bug的產生,例如提測前開發之間的Code Review和需經過測試人員的測試才能上線。
程式不是一蹴而就地做出來的,Bug也不是一時半會能改完的。畢竟“寫程式不像是造一座橋,而是造一座城。”
(本文為 AI科技大本營轉載文章,轉載請微信聯絡原作者)
◆
公開課預告
◆
如何用AI技術為黑白老照片上色?本次公開課中,百度高階研發工程師李超將講述對抗生成網路相關,學術界的研究現狀和應用場景,以及GAN在百度視覺+百度PR+新華社合作的煥彩專案中的應用。
推薦閱讀
相關文章
- 程式設計師越老越優秀嗎?程式設計師
- Java程式設計師會越老越吃香嗎?Java程式設計師
- 在中國程式設計師是青春飯嗎?程式設計師
- 老程式設計師被新程式設計師拍在沙灘上?程式設計師
- 老程式設計師都去哪了?程式設計師
- 老程式設計師的下場程式設計師
- 老程式設計師推薦10個程式設計策略程式設計師
- 老程式設計師都去哪兒了?程式設計師
- 一個“老”程式設計師的思考程式設計師
- 老程式設計師的思想變遷程式設計師
- 洩了氣的老程式設計師程式設計師
- 老程式設計師都到哪裡去了?程式設計師
- 程式Bug導致了天大的損失,要槍斃程式設計師嗎?程式設計師
- 一個老程式設計師的程式設計之路,寫給年輕的程式設計師們程式設計師
- 程式設計師 你幸福嗎?程式設計師
- 老程式設計師:當程式設計成為第二職業程式設計師
- 一個BAT老程式設計師的忠告!BAT程式設計師
- 老程式設計師眼中的簡明AI程式設計師AI
- 惡靈傳說之老程式設計師程式設計師
- 一個老程式設計師的建議程式設計師
- 程式設計師,熱愛你的 bug程式設計師
- 最牛程式設計師修復BUG程式設計師
- 以前的程式設計師,現在的程式設計師程式設計師
- 一個老程式設計師在網際網路寒冬下的感悟程式設計師
- 大學教程式設計的老師為何不去當高收入的程式設計師?程式設計師
- 程式設計師該如何改變枯燥的程式設計生活?程式設計師
- 程式設計入門,這763位老程式設計師有話講!程式設計師
- 你需要程式設計師鼓勵師嗎?程式設計師
- Web設計師需要程式設計知識嗎?Web程式設計
- 程式設計師的路好走嗎程式設計師
- 程式設計師,你焦慮嗎?程式設計師
- java程式設計師學歷重要嗎?Java程式設計師
- 程式設計師永遠不要再犯的5個程式設計bug程式設計師
- 1024程式設計師節:向改變世界的程式設計師致敬程式設計師
- 1024程式設計師節,向改變世界的程式設計師致敬程式設計師
- 風變,我的程式設計啟蒙老師程式設計
- 老程式設計師的10條中肯建議程式設計師
- 聘用老程式設計師的4大原因程式設計師