編寫優秀程式碼的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。