第四章 注重偏執(zhí)的實(shí)效
“你不可能寫出完美的軟件”,我們要把這句話視為生活的公理,并接受它、擁抱它。
但同時,有一些方法可以盡量把這個事實(shí)轉(zhuǎn)變?yōu)橛欣麠l件
作者用開車來類比寫程序:每個人都知道只有他們自己是地球上的好司機(jī),于是我們防衛(wèi)性地開車,小心謹(jǐn)慎以避免麻煩發(fā)生,預(yù)判意料之外的事,盡量不讓自己陷入無法解救自己的境地。編碼也類似,我們不斷地與他人的代碼結(jié)合——可能不符合我們的高標(biāo)準(zhǔn)的代碼——并處理可能有效也可能無效的輸入。所以,我們要防衛(wèi)性地編程。使用斷言檢測壞數(shù)據(jù),檢查一致性并在數(shù)據(jù)庫的列上施加約束。
但注重實(shí)效的程序員更進(jìn)一步,他們連自己也不信任。知道沒人能編寫完美的代碼,包括自己,所以要針對自己的錯誤進(jìn)行防衛(wèi)性地編碼。
采用防衛(wèi)性編程的方式,可以幫助我們應(yīng)對不完美的系統(tǒng)、荒謬的時間標(biāo)度、可笑的工具、還有不可能實(shí)現(xiàn)的需求,——在這樣一個世界中,讓我們安全“駕駛”。當(dāng)每個人都確實(shí)要對你不利時,偏執(zhí)就是一個好主意。
延伸閱讀
- ssh框架 2016-09-30
- 阿里移動安全 [無線安全]玩轉(zhuǎn)無線電——不安全的藍(lán)牙鎖 2017-07-26
- 消息隊(duì)列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標(biāo)分割】 2017-07-26
- 詞向量-LRWE模型-更好地識別反義詞同義詞 2017-07-26
- 從棧不平衡問題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實(shí)現(xiàn)JSON轉(zhuǎn)Model - HandyJSON使用講解 2017-07-26
- 阿里移動安全 Android端惡意鎖屏勒索應(yīng)用分析 2017-07-26
- 集合結(jié)合數(shù)據(jù)結(jié)構(gòu)來看看(二) 2017-07-26