防禦式編程

防禦編程的核心思想是: 子程序應該不因傳入的錯誤數據而被破壞,哪怕由其他子程序產生的錯誤數據。更確切的說,必須承認程序會有問題,都需要被修改。

防禦編程的最佳方式: 一開始不要再代碼中引入錯誤,使用迭代式設計、編碼前先寫僞代碼、寫代碼前先寫測試用例、底層設計檢查等。

一、保護程序免遭非法數據破壞

1、檢查所有來源於外部的數據的值。

2、檢查子程序的所有輸入參數的值。

3、決定 如何處理錯誤的輸入數據。

二 、斷言的使用

1、斷言主要用於開發和維護階段。通常,斷言只是在開發階段被編譯到目標程序中,而在生成產品編碼時並不會編譯進去。

2、用錯誤處理碼來處理預期會發生的情況,用斷言處理絕不應該發生的情況。斷言可以作爲可執行程序的註釋

3、不要將執行代碼放入斷言中,當關閉斷言功能時,執行功能可能失效。

4、變量數值都來源於系統外部,應該用錯誤處理代碼來檢查和處理非法數值,而不是用斷言。而變量是源於可信系統的內部,而且程序執行的結果不會超出合法的假定範圍值,則斷言更加合適。

三、隔離程序

以防禦編程爲目的而進行隔離的一種方法,是把某些接口選定爲安全的區域邊界,對穿越安全區域邊界的數據進行合法性校驗。

可以讓某些類處理“不乾淨”的數據,而讓另一部分處理“乾淨”的數據,即可讓程序中的大部分代碼無需擔負檢查錯誤數據的職責。

在輸入數據時將其轉化爲恰當的類型,輸入的數據通常是字符串或者數字的形式,
這些數據可以被映射爲 布爾類型的 true/fasle
有些被映射爲枚舉類型
這樣可以減少 程序處理數據的複雜度和崩潰的可能性。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章