第四章 注重偏執(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è)好主意。
延伸閱讀
- ssh框架 2016-09-30
- 阿里移動(dòng)安全 [無線安全]玩轉(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模型-更好地識(shí)別反義詞同義詞 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
- 阿里移動(dòng)安全 Android端惡意鎖屏勒索應(yīng)用分析 2017-07-26
- 集合結(jié)合數(shù)據(jù)結(jié)構(gòu)來看看(二) 2017-07-26
