編寫優秀代碼的10個技巧?

Tags: 技巧, 代碼,

作為程序員,寫代碼是需要一種崇高無上的精神來支撐的,寫出優秀的代碼,更需要你有深厚的底蘊和良好的編碼習慣。在介紹寫優秀代碼的10個技巧之前,我們先來探討一下什麼樣的代碼才是優秀的代碼。

穩定可靠(Robustness)

可維護且簡潔(Maintainable and Simple Code)

高效(Fast)

簡短(Small)

共享性(Reusable)

可測試性(Testable)

可移植性(Portable)

面對以上的目標,我們總結了以下10個寫代碼的技巧,希望對你有所幫助。

1、百家之長歸我所有

其實寫代碼的方式有很多,每個人都有自己的風格,但是眾多的風格中總有一些共性的、基本的寫代碼的風格,如為程序寫註釋、代碼對齊,等等。是不是編程規範?對就是編程規範。

2、取個好名字

取個好的函數名、變量名,最好按照一定的規則起名。還是編程規範。

3、凌波微步,未必摔跤

這裡我用“凌波微步”來形容goto語句。通常,goto語句使程序跳來跳去,不容易讀,而且不能優化,但是在某種情況下,goto語句反而可以增強程序的可讀性。Just go ahead,not go back。

4、先發制人,後發制於人

Defensive Coding指一些可能會出錯的情況,如變量的初始化等,要考慮到出現錯誤情況下的處理策略。測試時要多運行幾個線程。有些程序在一個線城下運行是正常的,但是在多個線程並行運行時就會出現問題;而有些程序在一個CPU運行幾個線程是正常的,但是在多個CPU下運行時就會出現問題,因為單CPU運行線程只是狹義的並行,多CPU一起運行程序,才是真正的並行運算。

5、見招拆招,滴水不漏

這裡的Error Case(錯誤情況),是指那些不易重視的錯誤。如果不對Error Case進行處理,程序在多數情況下不會出錯,但是一旦出現異常,程序就會崩潰。

6、熟習劍法刀術,所向無敵

用“劍法刀術”來形容一些API是因為它們都是經過了很多優秀開發人員的不斷開發、測試,其效率很高,而且簡潔易懂,希望大家能掌握它,熟悉它,使用它。是不是象我們的ULIB。

7、雙手互搏,無堅不摧

這裡的測試不是指別人來測試你的代碼,而是指自己去測試。因為你是寫代碼的原作者,對代碼的瞭解最深,別人不可能比你更瞭解,所以你自己在測試時,可以很好地去測試哪些邊界條件,以及一些意向不到的情況。

8、活用斷言

斷言(assertion)是個很好的調試工具和方法,希望大家能多用斷言,但是並不是所有的情況下都可以用到斷言。有些情況使用斷言反而不合適。

9、草木皆兵,不可大意

是指在寫代碼時,要小心一些輸入的情況,比如輸入文件、TCP的sockets、函數的參數等等,不要認為使用我們的API的用戶都知道什麼是正確的、什麼是錯的,也就是說一定要考慮到對外接口的出錯處理問題。

10、最高境界、無招勝有招

意思就是說盡量避免寫太多的代碼,寫的越多,出錯的機會也越多。最好能重用別人開放的接口函數或直接調用別人的api。

原作者: 楊雨個人博客

相關問題答案