怎麼用C++有利於寫出less error prone的代碼?

用C++寫代碼做項目,發現趕工的時候寫出的代碼更容易在跑test的時候出現core,各位有哪些經驗寫出less error prone的代碼?或者用什麼工具能幫助你減少error-prone的代碼?

我舉個例子,比如,能用智能指針的盡量用,代碼check-in前用靜態cppcheck做檢查等等。


既然是在跑test的時候core,那就證明沒事加test是一個有效的技巧啊。要是你哪天發現你隨便亂寫test都不掛結果在用戶那都掛了,這才麻煩。


隨便寫點,拋磚引玉。

如果代碼都是自己寫的,那麼確定自己寫的代碼自己知道它的作用,副作用,以及和其他代碼的互相影響。C++太容易照著別人的代碼寫一遍但是自己不知道後面的坑在哪兒,特別是如果一開始不清楚,之後再去改就很痛苦。如果沒看見明顯的壞處,就用最簡單最笨的方法去實現。不建議在公司項目代碼裡面炫技。

如果要用別人的代碼,請確定別人的代碼作用域和值域,包括錯誤返回值以及異常。

把effective c++為代表的c++ best practice一類的書讀一讀,起碼碰到實際case的時候知道去哪兒找答案。


代碼風格一致清晰, 命名言之有物. 盡量使用C+非繼承類+簡單模板, 避免使用"高級"C++特性, 除非你的業務邏輯有且僅有這個方法實現. 測試代碼永遠要多於產品代碼.

簡而言之, 最好寫到傻子都能看懂的程度. 而讓傻子都能看懂, 就要把代碼寫到好像是傻子寫出來的.


推薦閱讀:

C++ 在哪些設計原則的指導下,變得越來越複雜?
switch語句中,case的後面為什麼必須是常量?
大規模的C++項目是如何保證各個解決方案以及下面各工程的順序編譯?
最近在Oulu進行的關於c++17標準的會議有什麼進展?

TAG:軟體開發 | C | 編程範式 | C編程 |