※ 引述《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的情境的,因為做得好的情況 少、搞砸的機會多,除非你過去好幾年都是在做這種,不然很難寫好的 -- 在灣區打工的中年外籍碼農,有誰創業瞧得起在下的,歡迎聊聊 -- ※ 發信站: 批踢踢實業坊(pttsite.org.tw), 來自: 123.194.158.240 (臺灣) ※ 文章網址: https://pttsite.org.tw/Soft_Job/M.1662512881.A.2EA
superpandal: hold不住才需要log 災難源自於未知 每天幫別人除錯別 09/07 21:11
superpandal: 人不幫你是很悲劇的 以為這社會是互相 可是沒人在跟 09/07 21:12
superpandal: 你互相 別人的問題是你的問題 你的問題還是你的問題 09/07 21:12
superpandal: 說真的看久會厭世 當然如果都自己的東西不搞個天人合 09/07 21:21
superpandal: 一是對不起自己 09/07 21:22
silberger: 樓上是不是被包養 09/07 21:22
lovdkkkk: log 真的需要, 因為別人不可信, 自己更不可信 09/07 23:12
lovdkkkk: 好 log 呈現真實給你 (y) 09/07 23:12
lovdkkkk: 正好今天遇到轉時區轉錯誤差 16 小時 09/07 23:15
lovdkkkk: 直到把時間 log 出來才發現 09/07 23:15
labbat: 天才只要埋exception然後解析coredump,正常人就乖乖log唄 09/07 23:40
xayile: 未看先猜這包養 09/07 23:40
viper9709: 推專業 09/07 23:59
superpandal: 沒信心原因就那幾個 大部份是東西原本有坑 都自己的 09/08 22:32
superpandal: 就不會出現這種情況 因為都在掌控內 也就是幾乎都沒 09/08 22:33
superpandal: 未知 09/08 22:34
timofEE: 解析清楚 09/19 03:14
cazo: 一定又是這包養 09/19 03:14