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