東半球最先進(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了。然而,很多用戶的工作都依賴(lài)于之前有問(wèn)題的版本,于是你必須回滾。
我非常虔誠(chéng)的向大家奉送這些debug原則,任何一次debug都不可能只使用其中的一個(gè)方法解決。我真摯的希望大家通過(guò)對(duì)這些debug原則的思考能獲得意想不到的收獲。