15個程式設計好習慣

發表於2011-03-23

編者按:這是國外程式設計師Al katib總結的一些程式設計習慣。

1. 動手編碼之前,你需要對要編碼實現的解決方案有一個正式的或粗略的設計。永遠不要在沒有任何設計的前提下就開始編碼,除非所編程式碼不重要。

2. 優秀的程式碼文件跟程式語言知識一樣重要。在程式碼原始檔中,為每個主要的程式碼段新增註釋,解釋程式碼的基本邏輯。最好註明程式的構建和修改日期,以及修改的原因也是非常有必要的。

3. 維護程式的各個版本同樣重要。當前有些程式設計工具都自帶一個版本管理工具。無論你什麼時候改變自己的程式,它們都會將其儲存為.bak檔案。

我的方法是為每個程式維護三個不同的版本。比如說,我有一個名為program.c的檔案,這個檔案同時也被其他專案組成員使用。我把這個檔案複製為program.c.old作為備份檔案,並且當我修改時,我會備份另一個名為program.c.wrk的副本檔案。當成功完成修改時替換program.c.wrk檔案。

你還可以給自己的程式版本新增一個日期或一些註釋,像program260505.c或programReadFnWrking.c。

4. 如果工程包含多個原始檔,則建立一個README檔案,註明每個原始檔、資料檔案、臨時檔案以及日誌檔案(如果有的話)的作用。你還可以註明編譯和執行步驟。

5. 有時候,你一定想知道為什麼IF語句沒有得到預想的結果。可能你使用的是等號,也就是“=”,而不是條件判定符號“==”。一個比較好的辦法是用相反的順序寫條件語句。因此,你的條件語句應該如下:

if(10==i)…因此,如果你錯誤地寫成了單個等於號,在編譯的時候也能檢查出來並報錯。

6.使用迴圈和條件語句時,先把左右括號對應起來,然後再在裡面寫其他語句。也就是:

注:每一行開頭的數字表明寫迴圈程式碼的順序。

7. 避免使用幻數(magic numbers)。例如,不要寫

而要使用如下程式碼:

 

8. 使用有意義的變數和函式名稱。例如,使用‘radius’來代替圓的半徑,而不是用‘r’來表示。同樣,函式名‘calculateArea’要比其他任何隱晦的縮寫要好得多。匆忙之下,我們也許會使用縮寫的變數名,但一開始節省時間的話,之後會浪費更多的時間,去猜測縮寫變數名代表什麼。(編注:)

9. 為後面的除錯使用列印語句,這是個好習慣。但是,當完成最後程式碼後,去掉這些語句,有時也是一項危險的任務。新增一個方法,用於輸出除錯資訊。當最終版本生成時,只要把這個方法註釋掉就行。因此,只在一個地方做修改就可以了。

10. 程式碼編寫完之後,開始優化程式碼。之前宣告的一些變數,現在可能沒用了。同樣,並不依賴迴圈的一些宣告可以移到迴圈模組之外去。紮實的編譯知識同樣會對以後的程式碼優化有所幫助。

11. 對自己的作業系統和硬體要有足夠的瞭解,你可以從資源佔用等方面提升程式的效能。

12. 編寫程式碼時要合理使用縮排,以使程式碼清晰可讀。

13. 把專案檔案放到SOURCE、HEADERS、MAKE、EXES等不同的資料夾中。

14. 研究別人編寫的程式碼。這可以讓你學習到新的程式設計技術,以及他們解決和你相同的任務時所使用的方法。

15. 最後一條(但不是最不重要的一條),備份原始碼檔案,這樣當硬碟出錯或相同的問題發生時,不至於前功盡棄。

附加:補充一條,堅持使用一種命名模式。如果你打算用匈牙利命名法,那就堅持並廣泛使用,否則將適得其反。參見微軟資深工程師 Eric Lippert 的這篇文章《閱讀程式碼不簡單》。

 

編者後話

程式設計的好習慣應不止這15條,也許您不認同上文中的某些觀點,請標出相應序號,並說明其不足之處。另外,非常歡迎大家補充分享您的好習慣。

 

原文作者:Al katib   翻譯:伯樂線上  – 朱勇

如需轉載,但請註明原文/譯文出處、譯文超連結和譯者等資訊,否則視為侵權,謝謝合作!

相關文章