函式是軟體產品的細胞。如何寫好乙個命名規範,功能清晰,魯棒性強的函式,是乙個合格程式設計師的基本素養。
條例1: 一定要對非法輸入做錯誤處理。
寫函式最忌諱的就是不對非法輸入做錯誤處理。呼叫malloc等可能出錯的函式不判斷返回值。這樣的函式放到乙個龐大複雜的系統中將是災難。不是宕機就是出core或者各種錯誤的結果。曾經看過一篇文章,說是cpu感觸的1納秒,就相當於人類感觸的1秒。一次宕機的時間,對於cpu來說,相當於乙個文明的終結。
if判斷,assert假設,都是很好的校驗手段。
條例2:對各種邊界情況做自測
自測花的時間,比如不自測導致返工的時間,要少的多。程式設計珠璣 裡面就提到了腳手架測試方法。你可以注意到 leetcode 裡面的習題 atoi 通過率是很低的。自己寫乙個經得起各種邊界測試的 atoi 試試 ?
條例3:明確輸入和輸出的對映關係
函式的功能盡可能單一,這樣才能保證函式的返回值簡單可靠。system函式我覺得就是乙個反例,因為你很難通過這個函式的返回值做進一步的錯誤處理。
條例4:將函式的複雜性往設計層面隱藏,函式實現要盡可能簡短明了。
乙個例子就是 程式設計之美 裡面的 「1 的數目」 這個試題。咋一看,實現的**很明了,雖然知道裡面各變數正在做什麼,但是不知道為什麼要以這種流程去做。這就是將實現的功能原理給隱藏起來了,但是**卻簡潔高效,不易出錯。
成長之路 寫好乙個程式
提高自己和培養人才應該循序漸進,首先要能寫好乙個方法,之後能寫好乙個類,之後能寫好乙個程式,之後能做好乙個產品.之前已經寫了兩篇關於 寫好乙個方法,寫好乙個類的文章,緊接著把寫好乙個程式的經驗與大家分享下。給工程的專案路徑進行一下詳細的規劃,如圖,bin資料夾就是所有可執行程式的生成路徑,裡面有更詳...
成長之路 寫好乙個程式
提高自己和培養人才應該循序漸進,首先要能寫好乙個方法,之後能寫好乙個類,之後能寫好乙個程式,之後能做好乙個產品.之前已經寫了兩篇關於 寫好乙個方法,寫好乙個類的文章,緊接著把寫好乙個程式的經驗與大家分享下。用乙個windows平台下的vs2010工程進行介紹,附件有工程檔案,由於部落格附件最大只能2...
如何寫好乙個BUG報告?
為什麼是好的bug報告?如果您的錯誤報告是有效的,那麼它得到修復的機會就會更高。因此,修復bug取決於您如何有效地報告它。報告錯誤只是一種技能,我將解釋如何實現這一技能。編寫問題報告 bug報告 的目的是修復bug 由cemkaner編寫。如果測試人員沒有正確報告錯誤,程式設計師很可能會拒絕此錯誤,...