程序員的編碼規(guī)范大討論

由系統(tǒng)里殘留的函數(shù),引發(fā)起了一場編碼規(guī)范的討論。

群槍舌戰(zhàn),爭鋒相對(duì),只為更優(yōu)質(zhì)的代碼。老大和同事們的認(rèn)真與熱忱,深深地感動(dòng)了我。從這群平均年齡30+的同事身上,我看到對(duì)他們而言,寫代碼是件很開心的事,而不只是一份養(yǎng)家糊口的工作。

之前還會(huì)有很多的擔(dān)心,害怕自己能力太弱,害怕技術(shù)更新太快。不過,這又怎么樣呢?不會(huì)的東西,去學(xué)就是了。像老大掌握一個(gè)東西,花2天就行,我花1個(gè)月可能還掌握不了。那就用1個(gè)月好了。慢慢跟上,不斷縮小速度就好啦。

起初使用Reload(),后來逐步替換為HotReload()。舊的依舊存在,只是無人問津。
問題:既然目的是替換之前,為啥不直接改名?
簡單完美的方法不用,而留著這樣的包袱。沒有意外就是要背一輩子的了。

關(guān)于編碼規(guī)范,老大極力推薦《程序員修煉之道:從小工到專家》、《編程珠璣》、《代碼大全》

討論內(nèi)容,主要如下:

關(guān)于命名:

絕大多數(shù)情況下, flag handler 等類似的命名是完全沒意義的,約等于 tmp。
這個(gè)命名最大的問題是不夠精準(zhǔn)。名字表現(xiàn)的范圍大于要形容的實(shí)際大小。

何同學(xué)舉得這個(gè)例子特別形象。

如果是一條狗,就不應(yīng)該起個(gè)名字叫animal。
如果明確是京巴,那dog也是不合適的。

關(guān)于重復(fù):

DRY - Don't Repeat Yourself

Simple is perfect.
復(fù)雜問題簡單化,沒有問題絕對(duì)不要?jiǎng)?chuàng)造問題解決。
沒有完美地程序,總要學(xué)習(xí)把握在什么時(shí)候止步。
多一行代碼,多一行風(fēng)險(xiǎn)。即使只是打印一行代碼。
越是復(fù)雜,越容易隱藏問題。
已有的輪子,就盡可能的復(fù)用,而不是新建輪子。

好的代碼是實(shí)現(xiàn)功能,保證一定擴(kuò)展性的情況下減無可減,而不是加無可加。

有很多道理,大家都是知道。但是只有在實(shí)際檢視代碼的時(shí)候,才能更深感受到不好的編碼習(xí)慣帶來的坑,還有好的規(guī)范帶來的好處。

關(guān)于巧合編程:

做好的了功能,不知道怎么做好的
出了bug,不知道怎么錯(cuò)誤的

很像水螅,你戳它一下,他全身都動(dòng)。因?yàn)樗纳窠?jīng)系統(tǒng)沒辦法定位痛點(diǎn)。

關(guān)于重構(gòu):

重構(gòu)遇到的錯(cuò)誤,讓我們現(xiàn)在成了實(shí)實(shí)在在的保守派。已上線的內(nèi)容,即使看起來再別扭難受,只要它還能正常完成工作,就保持不動(dòng)。

我在殺豬的時(shí)候遇到了一些麻煩,因?yàn)槲覍?duì)豬的生理結(jié)構(gòu)不清楚,或是這本來就是一頭畸形的豬,導(dǎo)致我殺的豬很難看。而換一把更快更漂亮的刀,也不能改變內(nèi)部問題。

所謂字如其人,程序員的代碼也是如此。寫過的每一行代碼,都是程序員的臉面。


陳皓說,相對(duì)于編程風(fēng)格糟糕,編程能力高超的程序,他更愿意招一個(gè)編程水平一般,但是編程風(fēng)格良好的程序。做一個(gè)編程水平高端的人,是需要長期不懈努力的,但是給自己做臉,還是能很快看到效果的。

閱讀更多代碼,刻意養(yǎng)成良好的編程習(xí)慣。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,323評(píng)論 25 708
  • T5、T6洋房優(yōu)勢(shì): 1、9層低密度花園洋房,市場稀缺 2、景觀好,可望到植物園、生態(tài)環(huán)?;?3、樓下就是幼兒園...
    陽文斌閱讀 155評(píng)論 0 0
  • 需求描述:學(xué)習(xí)中心—-有個(gè)兩個(gè)pager,一個(gè)參加的課程,一個(gè)參加的微專業(yè)。每個(gè)pager要求用fragment實(shí)...
    fancychendong閱讀 1,804評(píng)論 1 2
  • 辭舊迎新,合家團(tuán)圓,鞭炮聲響,歡喜無窮——新年到。中華民族有很多的傳統(tǒng)節(jié)日,每個(gè)傳統(tǒng)的習(xí)俗也有很多,其中...
    冬也有溫暖閱讀 236評(píng)論 0 0
  • 今日很早便送客戶到機(jī)場,協(xié)助辦理完登機(jī)牌后,便結(jié)束了今天的工作。 于是,等我回到市區(qū)時(shí),才7:30,這個(gè)時(shí)候如果不...
    五月成長筆記閱讀 284評(píng)論 0 0

友情鏈接更多精彩內(nèi)容