Re: [請益] 業界遇到這種bug該怎麼處理?

作者: zanyking (最後的六年級生)   2022-09-07 09:07:57
※ 引述《banana2014 (香蕉共和國)》之銘言:
: 我大概在兩年前左右做了一個網頁版的聊天室
: 約莫上個月的時候,我無意間發現了一個bug
: 那個bug是對方已經傳了一個新訊息給我,但我這邊卻完全沒收到他傳給我的新訊息
: 但等我重新整理聊天室頁面之後,那個bug就從此徹底銷聲匿跡了
: 而且從兩年前到bug發生當時的那段時間以及bug發生當時至今這段時間,用起來都很正常
: 也就是說那個bug只在上個月那一次發生之後就再也沒被我看到了
0. 你的系統有多重要?你願意花多少代價去修、去整理他?如果是自己做好玩的,用戶
不多、也不打算靠他賺錢,那很多時候就是不修了,接受Bug的存在在資源有限的時候也
是一個選項
1. 重新檢討你的系統怎麼做logging、Monitoring 的,越難纏、越不好重現的Bug,越是
只能靠logging 找出問題,如果寫程式例外處理習慣很差,每次遇到exception 就吃案,
那自然系統一天到晚都會有『難以重現』的Bug
2. 找人來看,找比你懂的人做pair programming 來review系統的設計,必要時先做重構
簡單的說,很多時候系統存在難解的問題,就像是你的房間裡有蟑螂蜘蛛要清掉一樣
如果吃過的便當、喝過的飲料、穿過的衣服等等等的隨便散放在地上,生活習慣極差
想要把蟑螂蜘蛛都給殺光趕跑是不可能的,只有先把房間打掃完,再來驅趕才會有效
而只要生活習慣不改善,遲早會再度變成蟑螂窩的
: 雖然我不是IT業界的專業程式設計師
: 不過我想問一下:
: 當遇到這種程式已寫了兩年以上才難得出現過一次算是有點嚴重的bug被你發現到了
: 通常專業的都怎麼處理?
: 因為這樣的bug或許很難刻意的被製造出來,所以幾乎只能靠運氣碰碰看了
聊天室幾乎肯定會用上critical section,如果你對你採用的programming language
如何做multithreaded programming 觀念有誤,那就容易寫出看起來沒問題,但實際上
問題很多的系統,如果你還用上分散式處理(你的情境應該用不到),那有問題的機會是
更高的
更多時候我們是會避開需要做multithreaded programming的情境的,因為做得好的情況
少、搞砸的機會多,除非你過去好幾年都是在做這種,不然很難寫好的
作者: superpandal   2022-09-07 21:11:00
hold不住才需要log 災難源自於未知 每天幫別人除錯別人不幫你是很悲劇的 以為這社會是互相 可是沒人在跟你互相 別人的問題是你的問題 你的問題還是你的問題說真的看久會厭世 當然如果都自己的東西不搞個天人合一是對不起自己
作者: lovdkkkk (dk)   2022-09-07 23:12:00
log 真的需要, 因為別人不可信, 自己更不可信好 log 呈現真實給你 (y)正好今天遇到轉時區轉錯誤差 16 小時直到把時間 log 出來才發現
作者: labbat (labbat)   2022-09-07 23:40:00
天才只要埋exception然後解析coredump,正常人就乖乖log唄
作者: viper9709 (阿達)   2022-09-07 23:59:00
推專業
作者: superpandal   2022-09-08 22:32:00
沒信心原因就那幾個 大部份是東西原本有坑 都自己的就不會出現這種情況 因為都在掌控內 也就是幾乎都沒未知
作者: timofEE (新人)   2022-09-19 03:14:00
解析清楚

Links booklink

Contact Us: admin [ a t ] ucptt.com