避免程式Bugs
避免Bugs
- 使用靜態和動態檢測以及不可改變性
- 開啟斷言減少程式bug
- 迭代式開發,(單元測試和迴歸測試)
- 模組化和封裝化
什麼時候開啟斷言
- 方法的引數
/**
* @param x requires x >= 0
* @return approximation to square root of x
*/
public double sqrt(double x) {
assert (x >= 0)):"x is" + x;
}
- 方法的返回值
public double sqrt(double x) {
assert x >= 0;
double r;
... // compute result r
assert Math.abs(r*r - x) < .0001;
return r;
}
- 覆蓋所有的可能
如果if和switch沒有覆蓋所有的可能,可以使用斷言來阻塞不合法的可能
switch (vowel) {
case 'a':
case 'e':
case 'i':
case 'o':
case 'u': return "A";
default: assert false;
}
關閉斷言的情況
- 不要使用斷言來測試外部的變數(如外部檔案是否存在、網路是否可用、使用者的輸入是否正確)
- 測試時需要開啟斷言,給使用者的時候關閉。
模組化和封裝化
- 變數的範圍應該最小化
- 宣告迴圈的變數應該在迴圈內宣告
- 在變數要使用的地方宣告
- 避免全域性變數
相關文章
- Bugs Fixed for Your PlatformPlatform
- Understanding Buffer Overflow Bugs
- java如何避免程式死鎖Java
- hunting security bugs讀書筆記(1)筆記
- 怎樣避免脆弱的程式碼?
- 程式設計師如何避免故障?程式設計師
- 怎麼避免寫出爛程式碼
- 低程式碼構建程式有哪些風險如何避免?
- 程式設計師要避免的開發模式程式設計師模式
- 千萬要避免的五種程式註釋方式
- 五種應該避免的程式碼註釋
- AD_BUGS 和 AD_APPLID_PATCHES 的區別APP
- 程式設計師應該避免的5種程式碼註釋程式設計師
- 程式設計師如何避免“滴滴式裁員”悲劇?程式設計師
- 微信小程式避免按鈕重複觸發事件微信小程式事件
- 避免在程式碼中直接使用delete關鍵字delete
- 寫最少的程式碼,避免給自己找麻煩
- 寫最少的程式碼 避免給自己找麻煩
- 什麼時候應該避免註釋程式碼?
- Top ASM Bugs In 11gR2 (Doc ID 1506033.1)ASM
- Pitivi 0.94 切換到 GTK HeaderBar,修復無數 BugsHeader
- [轉]C,C++開源專案中的100個BugsC++
- 小程式如何避免多次點選,重複觸發事件事件
- CIO應避免的三個低程式碼部署錯誤
- Android Bugs—— Error:In declare-styleable FontFamilyFont, unable to find attribute android:fontAndroidError
- 程式設計師避免精神崩潰的9個建議程式設計師
- 程式設計師應該堅決避免的10種程式設計壞毛病程式設計師
- 避免 rm 誤操作
- 避免誤用 RedisRedis
- excel 避免下拉操作Excel
- 最近程式設計師頻繁被抓,如何避免面向監獄程式設計!?程式設計師
- 使用React嚴格模式避免過時的程式碼和副作用React模式
- 【開發經驗】Flutter避免程式碼巢狀,寫好build方法Flutter巢狀UI
- 如何避免Java程式碼中的空指標錯誤NullPointerException? - foojayJava指標NullException
- 清華男生用程式碼給女生寫明信片 避免內容被偷看
- Android bugs——NoSuchFieldError: No static field btn_press3 of type I in class Lcom/hyphenate/helpdesAndroidErrorS3
- Summary of Bugs containing ORA-00600[12333] Error [ID 428629.1]AIError
- 避免單例濫用單例