编程的智慧 意外在内网找到的资源
http://www.yinwang.org/blog-cn/2015/11/21/programming-philosophy/
?
總結(jié)幾點(diǎn):
正確處理null指針
文章寫到:
首先你應(yīng)該知道,許多語言(C,C++,Java,C#,……)的類型系統(tǒng)對(duì)于null的處理,其實(shí)是完全錯(cuò)誤的。這個(gè)錯(cuò)誤源自于Tony Hoare最早的設(shè)計(jì),Hoare把這個(gè)錯(cuò)誤稱為自己的“billion dollar mistake”,因?yàn)橛捎谒a(chǎn)生的財(cái)產(chǎn)和人力損失,遠(yuǎn)遠(yuǎn)超過十億美元。
在開發(fā)過程中,構(gòu)建一個(gè)函數(shù)永遠(yuǎn)要對(duì)傳入的值進(jìn)行校驗(yàn),即使目前調(diào)用者能夠保證值的非null,但是考慮了未來的可擴(kuò)展(新的調(diào)用),潛在的安全問題(異常調(diào)用),所以
保證函數(shù)自己對(duì)null的處理是一個(gè)很好的習(xí)慣~
?
?
正確處理錯(cuò)誤
盡可能控制住自己的代碼,我記得當(dāng)初學(xué)街舞的時(shí)候最明顯的一點(diǎn)就是控制自己的肌肉,指定某一塊肌肉進(jìn)行pop。同樣的道理,控制住自己的代碼,保證代碼塊的異常都是
自己都能掌握住的,而不是一個(gè)Exception去包括一切,這是一種弱者的行為,只能說明自己不了解自己的代碼。
二。throw,假如你要throw出,你要保證調(diào)用者能很好的處理這個(gè)異常,否則對(duì)于調(diào)用者也繼續(xù)throw,那只能一直推卸責(zé)任下去。從函數(shù)設(shè)計(jì)的角度來看,盡可能別throw exception,這是對(duì)自己的負(fù)責(zé)
?
?
其他的暫時(shí)沒什么別的見解
轉(zhuǎn)載于:https://www.cnblogs.com/hexie/p/5033745.html
總結(jié)
以上是生活随笔為你收集整理的编程的智慧 意外在内网找到的资源的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: jQuery导航切换功能
- 下一篇: LocalDB连接失败