你的程式碼不是唯一有 bug 的#
compiler、interpreter、libraries、database、application server、operating system——這些都有自己的 bug。例如當時 Linux source code 中有超過 2,700 個標記為 XXX 的註解,其中一些肯定是 bug。
嘗試更新軟體#
更新你使用的軟體可能有助於解決一些 bug:
- 使用更新的 compiler 或 library 可能修正你正在遇到的問題
- 如果是 software-based service,更新 middleware、database 和 OS 也可能有幫助
- 至少嘗試用最新版本 build、link 或執行你的程式碼,排除第三方 bug 的可能性
保持謹慎的升級策略#
保守的升級策略有很多好處——和你熟悉的版本共處。大量 middleware 有不完善的向後相容性,有經驗的使用者在升級時通常非常謹慎,傾向選擇最近的 bug-fix release(例如 6.4.3)而非大版本升級。
注意事項:
- 新版軟體可能引入新的 bug 和不相容性
- 準備好回退計畫——如果升級無效或沒有解決問題
- 在 sandbox 中測試升級(例如用 throw-away 的 cloned virtual machine image)
別輕易怪罪第三方程式碼#
假設外部程式碼是無辜的,直到被證明有罪。作者在三十年間修了數千個自己程式碼中的 bug,但只遇過一次 compiler 產生錯誤程式碼、幾次 library bug、一次 OS 功能不可靠、少數系統呼叫文件錯誤。升級軟體最大的收穫,往往是讓你下定決心整理自己的程式碼。
重點回顧#
- 在更新過的環境上測試你的失敗系統
- 不要對這個方法抱太大期望
- 考慮第三方 bug 的可能性