第四章 注重偏執(zhí)的實(shí)效
“你不可能寫出完美的軟件”,我們要把這句話視為生活的公理,并接受它、擁抱它。
但同時(shí),有一些方法可以盡量把這個(gè)事實(shí)轉(zhuǎn)變?yōu)橛欣麠l件
作者用開車來類比寫程序:每個(gè)人都知道只有他們自己是地球上的好司機(jī),于是我們防衛(wèi)性地開車,小心謹(jǐn)慎以避免麻煩發(fā)生,預(yù)判意料之外的事,盡量不讓自己陷入無法解救自己的境地。編碼也類似,我們不斷地與他人的代碼結(jié)合——可能不符合我們的高標(biāo)準(zhǔn)的代碼——并處理可能有效也可能無效的輸入。所以,我們要防衛(wèi)性地編程。使用斷言檢測(cè)壞數(shù)據(jù),檢查一致性并在數(shù)據(jù)庫(kù)的列上施加約束。
但注重實(shí)效的程序員更進(jìn)一步,他們連自己也不信任。知道沒人能編寫完美的代碼,包括自己,所以要針對(duì)自己的錯(cuò)誤進(jìn)行防衛(wèi)性地編碼。
采用防衛(wèi)性編程的方式,可以幫助我們應(yīng)對(duì)不完美的系統(tǒng)、荒謬的時(shí)間標(biāo)度、可笑的工具、還有不可能實(shí)現(xiàn)的需求,——在這樣一個(gè)世界中,讓我們安全“駕駛”。當(dāng)每個(gè)人都確實(shí)要對(duì)你不利時(shí),偏執(zhí)就是一個(gè)好主意。