天天看點

我心目中的代碼三要素

        工作這麼長時間了, 幾乎每天都在和代碼打交道。 看到漂亮的代碼, 就有賞心悅目的感覺, 看到蹩腳的代碼, 真想把原作者揪出來, 狂扁一頓。 每個人對代碼好換的定義不一樣, 下面, 以我個人的了解, 談談我認為代碼中最重要最基本的三個方面, 歡迎大家提出不同的見解。

        第一, 代碼要正确。

        這裡所謂的正确, 不是數學意義上的百分之百正常, 實際上, 代碼也不可能百分之百正确(算法倒是可以百分之百正确)。 我所說的代碼正确, 意思是指代碼要實作特定的功能。 不能實作特定功能的代碼, 是毫無意義的。 這個道理很簡單, 你買個手機, 但手機不能開機, 你買個燈泡, 但燈泡不亮, 你自然不爽。 是以實作功能是最重要的, 沒有實作功能的代碼, 有什麼意義?

       第二, 代碼要有良好的風格。

       寫代碼幹什麼?僅僅為了實作功能嗎? 我們知道, 軟體是一個比較複雜的東西, 複雜的東西就有可能有bug, 是以必然需要維護。 軟體開發人員流動性大, 軟體也經常變更, 當别人維護或變更已有代碼時, 他能輕松地讀懂嗎? 當你看你三個月之前寫的代碼的時候, 你能很快知道各個分支的功能嗎? 我看未必。 是以, 我要說, 代碼需要有良好的風格。 有一句話有一定道理: 代碼是寫給人看的, 其次才是給機器執行。 看有的人寫的代碼, 一頭霧水, 注釋沒有注釋, if while for 亂嵌套, 多重嵌套, 不懂得利用空格和空行, 變量和函數的指令不注意規範。最後自問自答:什麼是良好的風格? 良好的風格就是人能快速看懂代碼的意思, 讓人看得不難受, 不惡心。

       (補充一下, 代碼的注釋非常重要, 不僅要讓自己明白, 更要讓他人明白。 最近我看到幾個莫名其妙的分支, 然後就不高興了好長時間.)

       第三, 代碼要健壯。

       這裡的健壯性是指程式要有防錯處理, 看看優秀的大型程式吧, 很多分支都是在處理異常分支, 并在異常分支中加入日志。 你建立一個函數, 就一定能建立成功嗎? 你new一塊記憶體就一定能成功嗎? 你往資料庫寫一個字段, 就能一定成功嗎? 你是否還在用不安全的sscanf, sprintf, strcpy, strcat這些垃圾函數? 或許你要說, 我誇張了, 但是, 當大型程式出了問題, 沒有對異常分支的處理, 怎能快速定位到問題呢? 如果代碼不健壯, 動不動就出問題, 怎能獲得使用者的信任?  一個句柄洩露,你不在乎, 那使用者連續數天開機用你這個東西, 你不擔心會當機嗎?你new了一塊記憶體, 在異常分支又不去釋放它, 那程式要是進入了異常分支怎麼辦? 是以, 代碼要健壯, 盡量抵擋各種惡劣環境。

       其餘的, 我就不想扯了。 略不高興地扯一句, 那些還在實際項目中讨論++i和i++哪個效率更高的人(實際上++i的效率确實高一點點), 我懶得說你。最後, 我補充一句, 為了簡便示意, 我部落格中的代碼,基本上躲到了第一點和第二點, 但沒有做到第三點。

繼續閱讀