怎麼用C++有利於寫出less error prone的代碼?
02-08
用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標準的會議有什麼進展?