東半球最先進(jìn)的 debug 技巧
不論是什么行業(yè)里,能讓人最興奮的事情通常都是解決新奇的、高難度問題帶來的刺激。在我的工作中,經(jīng)常會(huì)遇到很多 bug,乍一看,它們都是不可能的。不是不可能解決,而是完全不可能出現(xiàn)。就好象最前沿的科技揭示了一個(gè)新的奇怪的邏輯現(xiàn)象,以至于人的大腦完全無法理解。
當(dāng)然,這里我總結(jié)的這些 bug 都是很獨(dú)特的,如果你想說是否能有某種***進(jìn)的系統(tǒng)性的方法能將這些 bug 歸類,統(tǒng)一解決,那是愚蠢的,就好象一個(gè)人無法認(rèn)識(shí)到自己在犯錯(cuò)而避免過錯(cuò)一樣。不管怎樣,下面的這些 debug 原則對(duì)我是十分有效的,而且我相信,對(duì)大多數(shù)程序員也都是有效的。
-
你改錯(cuò)了文件
-
你改對(duì)了文件,但卻是在別人的機(jī)器上
-
你改對(duì)了文件,但忘了保存
-
你該對(duì)了文件,但忘了重新編譯
-
你認(rèn)為你把那個(gè)東西開啟了,但實(shí)際上你把它關(guān)閉了
-
你認(rèn)為你把那個(gè)東西關(guān)閉了,但實(shí)際上你把它開啟了
-
會(huì)議中,你應(yīng)該用心聽。
-
你運(yùn)行了錯(cuò)誤的版本
-
你運(yùn)行了正確的版本,但卻是在別人的機(jī)器上
-
你改正了問題,但忘了提交
-
你改正了問題,也提交了,但忘了 push 到版本庫中
-
你改正了問題,也提交了,也 push 了。然而,很多用戶的工作都依賴于之前有問題的版本,于是你必須回滾。
我非常虔誠的向大家奉送這些 debug 原則,任何一次 debug 都不可能只使用其中的一個(gè)方法解決。我真摯的希望大家通過對(duì)這些 debug 原則的思考能獲得意想不到的收獲。
譯文出自:http://www.oschina.net/news/54244/cutting-edge-debugging