1. 程式人生 > >進攻式程式設計 與 防禦式程式設計

進攻式程式設計 與 防禦式程式設計

1、防禦式程式設計
業務的流轉應該在引數的正確性下進行。簡言之,就是先進行安全性或者存在性檢查,然後再執行業務流程。
防禦式程式設計方式例如:DATABASE需要對目標表進行兩次掃描,一次是存在性檢查,一次為執行業務(如果引數正確的話)。
防禦式程式設計的思想為:在沒有真正的操作資料之前,要保證所有的操作或者引數都是正確的,DATABASE只做正確的事。程式編寫者應該儘量的預料出可以預料到的錯誤。我們不應該認為,在表中添加了check約束,就不用在程式中判斷某個人的性別只能是男和女。

2、進攻式程式設計
一般情況下,呼叫環境已經把要傳入程式的引數進行了驗證以保證引數是正確的或者大部分是正確的,而此時再採用防禦式程式設計無疑浪費了資源和時間。貌似這個時候採用進攻是程式設計是正確英明的選擇。
先不管引數正確與否,先進行業務操作,在出現錯誤的時候再進行處理。

防禦式多用在需要給其他人使用的介面上,
進攻式多用在自己可以掌控的程式開發中。