本文選自電子工業出版社2002年即將出版的由微軟公司華人專家編著的《軟件開發的科學與藝術》一書。全書透徹解析了微軟軟件開發的思想與過程。
雙手互搏, 無堅不摧
作為一個軟件開發人員,必須測試自己的程序,使得代碼做得更好,更加穩定。就我個人的經驗來說,如果沒有測試過代碼,程序就不可能正確運行。
另外,在同一組的開發人員之間做得很多的一件事就是:別人來對你的代碼進行檢查,反過來你對別人的代碼進行檢查,這個過程不僅是希望檢查的人來發現你的代碼中的問題,或是你去發現別人代碼中的問題,更重要的是在向別人講解你的代碼的過程中,可以發現自己遺漏的地方和問題,理順自己思路。
下面這段程序是我在開發Exchange Server時寫的一段代碼,當時寫完以后我沒有測試它。因為這段代碼實在是太簡單了,只有幾行代碼:取文件的長度,如果出錯就返回。于是我僅僅是編譯通過后就將其提交(checkin)到實際產品中了。
結果第二天早上當我到辦公室的時候,發現我的三位上司都已經鐵青著臉在那里等我了。原來,整個Exchange Server都運行不起來了!因為我的這段代碼被加在了Exchange Server啟動代碼序列中,當Server啟動時,由于我這段代碼的錯誤,一啟動就失敗,導致了DOA(dead on arrival)。