1.兩個版本:在程序的編寫過程當中,編譯其既要維護程序的交付版本,又要維護程序的調試版本,調試版本,利用它提供的測試部分在增長程序功能時自動地查錯。在程序編完以後,編譯其交付版本,封裝以後交給經銷商,針對這個問題能夠利用斷言進行補救。
2
.
assert
是個只有定義了DEBUG 才起做用的宏,若是其參數的計算結果爲假,就停止調
用程序的執行
3.
是個只有定義了DEBUG 才起做用的宏,若是其參數的計算結果爲假,就停止調
用程序的執行。
4.
要使用斷言對函數參數進行確認
5.
「無定義」意味着「要避開」
6.
要從程序中刪去無定義的特性
或者在程序中使用斷言來檢查出無定義特性的非法使用
7.
不要浪費別人的時間─── 詳細說明不清楚的斷言:
8.斷言
不是用來檢查錯誤的,
第一個斷言的用法是正確的,由於它被用來檢查在該程序正常工做時毫不應該發生的非
法狀況。第二個斷言的用法至關不一樣,它所測試的是錯誤狀況,是在其最終產品中確定會出
現而且必須對其進行處理的錯誤狀況。
9.消除所作的隱式假定,或者利用斷言檢查其正確性
10.利用斷言來檢查不可能發生的狀況
11.在進行防錯性程序設計時,不要隱瞞錯誤
12.要利用不一樣的算法對程序的結果進行確認
13.不要等待錯誤發生,要使用初始檢查程序
14.
在項目的整個生存期中,程序中都應該保留斷言。在程序的交付以前不要把它們刪去。在從此打算爲程序增長新功能時,這些斷言仍然有用。
1
5.
測試不該包含應保留在函數非調試版本中代碼。