15個編程好習慣(轉)

【轉載的文章加了一點自己的註釋】

http://www.cnbeta.com/articles/138055.htm

編者按:這是國外程序員Al katib總結的一些編程習慣。
1. 動手編碼之前,你需要對要編碼實現的解決方案有一個正式的或粗略的設計。永遠不要在沒有任何設計的前提下就開始編碼,除非所編代碼不重要。

【這一點剛開始編程的時候總是不以爲然,但隨着代碼的積累,才漸漸明白設計的重要性。這設計可能不是面面俱到,確實很重要】

 

2. 優秀的代碼文檔跟編程語言知識一樣重要。在代碼源文件中,爲每個主要的代碼段添加註釋,解釋代碼的基本邏輯。最好註明程序的構建和修改日期,以及修改的原因也是非常有必要的。【註釋中不能有廢話】

3. 維護程序的各個版本同樣重要。當前有些編程工具都自帶一個版本管理工具。無論你什麼時候改變自己的程序,它們都會將其保存爲.bak文件。【用svn就好了】

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

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

4. 如果工程包含多個源文件,則聲稱一個README文件,註明每個源文件、數據文件、臨時文件以及日誌文件(如果有的話)的作用。你還可以註明編譯和運行步驟。【這一點本人覺得沒有必要,只要代碼文件名稱恰當就好了】

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

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

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

代碼: 1 for(int i=0;i<10;i++)2 {4 printf(“i=%dn”,i);3 }   注:每一行開頭的數字表明寫循環代碼的順序。

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

代碼: circleArea = 3.14 * pow(radius,2); 而要使用如下代碼:

代碼: #define PI 3.14 circleArea = PI * pow(radius,2);

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

9. 爲後面的調試使用打印語句,這是個好習慣。但是,當完成最後代碼後,去掉這些語句,有時也是一項危險的任務。添加一個方法,用於輸出調試信息。當最終版本生成時,只要把這個方法註釋掉就行。因此,只在一個地方做修改就可以了。

【這的確是個好習慣,對調試很有利】

10. 代碼編寫完之後,開始優化代碼。之前聲明的一些變量,現在可能沒用了。同樣,並不依賴循環的一些聲明可以移到循環模塊之外去。紮實的編譯知識同樣會對以後的代碼優化有所幫助。

【這一點以後得注意,現在好寫還沒有養成優化代碼的習慣】

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

12. 編寫代碼時要合理使用縮進,以使代碼清晰可讀。【這一點可以略去,編譯器通常會幫你做】

13. 把項目文件放到SOURCE、HEADERS、MAKE、EXES等不同的文件夾中。

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

【這是程序猿必經之路】

15. 最後一條(但不是最不重要的一條),備份源代碼文件,這樣當硬盤出錯或相同的問題發生時,不至於前功盡棄。

【如果用SVN的話,就不必記住這一條了】

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

【個人覺得匈牙利命名法還是很好的,至少不習慣java的命名習慣】

  編者後話

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

  譯文出處:伯樂在線 - 職場博客
  譯文鏈接:http://www.jobbole.com/entry.php/581

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章