繼續Debug

上週發佈了一個版本供公司內部同事來測試。有人發現了這麼一個bug,副本列表的界面上,剩餘進入次數變成了負數,有的爲-1,有的-2。

典型的一個解決方案,判斷兩數相減的結果如果小於0,就等於0。好嘛,典型的頭疼醫頭,腳疼醫腳。

之所以要請一個好的Debug大師,就是要避免這種止疼而不治疼的debug方案執行。好的程序員會使所有代碼正確運行,普通的程序員追求的是代碼看上去不出錯。

說完信念,就說這個bug是怎麼解決掉的。


兩數相減爲負,很明顯是一個小數減了大數。一開始,我以爲是已經進入次數的自增超過了可進入次數,是不是有進入副本增加次數 不在檢查可進入次數這個條件之下。排查了一遍,沒有。難道是被減數變小了?可進入次數應該是一個不變的量。等等,購買特權會使可進入次數變多。難道在特權模式下進入了N次,後來特權失去,可進入次數又變回了原來的數值。好嘛,現在真成了一個小數減去大數了。

我在異常日誌裏面了找到了一個有關特權保存到數據庫的異常,這個異常的用戶主體就是報bug的同事。

要使所有代碼正確運行,不追求代碼看上去不出錯。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章