提升編程能力的11個技巧

jopen 10年前發布 | 7K 次閱讀 編程

不說廢話,直接上步驟。

1.首先仔細分析問題

2.接著好好想想如何解決這個問題

3.收集整理所有需求。

花點時間將最終產品要實現的目標寫下來,并且明確哪些是我們的目標用戶群。如果這一步能做好的話,將會給后面節約大量的時間,正所謂磨刀不誤砍柴工。

4.寫一個全面的實施計劃(或模型)。

如果是個小項目,這一步出來的可能只是一個基本的流程或者一個簡單的等式。

如果是個比較大的項目,這一步有助于我們將它切割成幾個模塊,然后再按下面的問題思考:

  • 各個模塊需要執行什么任務
  • 模塊之間如何傳遞數據
  • 如何調用模塊中的數據

雖然比起直接入手去寫代碼,收集和規劃需求又枯燥又無趣,但是如果這一點沒有做好,后面的調試工作就會特別繁瑣。如果我們能花點時間,設計出一個正確的程序流程和結構,那么我們其實在寫第一行代碼之前就相當于已經成功了一半。

 5.注釋我們的代碼。

如果你認為你的代碼可能需要做個解釋,那就去注釋它。每個函數都應該提前一兩行就先描述一下它的參數和返回結果。比起告訴你what,注釋應該說明的是why。還有記得在更新代碼的時候也要更新注釋。

6.使用統一的命名規則定義變量。

這將有助于我們追蹤各個類型的變量,并且對每個變量的用途一目了然。這一條的好處可不僅僅是方便我們打X = A+ B * C這么簡單,它會讓我們的代碼更便于調試和維護。目前普遍受歡迎的一種命名方法是匈牙利命名法,它采用的是類型前綴于變量的做法。例如,對于整體變量,我 們可以使用intRowCounter,字符串就是strUserName。無論你的命名規則是什么都沒關系,只要保持一貫,并能簡單描述變量就行。

7.格式化編輯代碼,代碼結構可視化。

例如,碰到條件語句(if、else等)和循環語句(for、while等)縮進代碼。還有,可以在變量名和運 算符號之間加個空格,運算符號指的是“+”、“-”、“*”、“/”,以及“=”(舉例,myVariable = 2 + 2)。這不但讓你的代碼更直觀更優雅,還能使得我們的程序流程更加一目了然。

8.全面測試。

首先通過輸入我們期望的值來測試每個模塊能否獨立運作。然后試著輸入一些可能但是很少見的值,繼續測試。這基本上能暴露所有隱藏的bug。測試也有所謂的技巧,通過練習和實踐,我們誰都可以逐步建立起適合自己的技能。測試應包含下列情況:

  • 極端值:正值用0和大于預期的最大值;文本用空字符串,參數用null。
  • 無意義的值。雖然用戶不大可能會輸入亂碼,但是我們自己無論如何先測試一下為好。

不正確的值。在除法中輸入0,或者在預期是正數以及開平方根的情況下輸個負數。當輸入類型是一個字符串的時候,輸入非數字,然后看看是否會被解析為數字值。

9.練習、練習、還是練習。

編程也會隨著時代的前行而不斷進步。所以總有新的東西需要我們學習,——甚至更加有用、更加重要——當然,也總有一些內容值得我們溫故而知新。

10.減少需求改變的風險。

在現實的工作環境中,需求總是在不斷變化的。然而,如果前期我們對需求收集得非常全面,一開始的實施計劃就很有針對性,那么后期因需求改變導致的計劃不周和雙方產生誤會的可能性就會小得多。

我們可以在開始寫代碼之前,通過展示需求文檔和實施計劃,以提高進程的清晰度。這將有助于確保我們的計劃是真正按照客戶的要求去完成的。

如果將項目比作是一系列的里程碑,那么一次只要完成一個就可以了。記住,在任何特定的時刻需要考慮的東西越少,那么我們想得就越詳盡越完美。

11.由易到難,從簡入繁。

如果你的軟件復雜,那么我建議你最好先從簡單的模塊入手。例如,有這樣一個項目:請設計一個程序,要求能出現一個跟著鼠標方向走的漸變圖形,并且還能根據鼠標滑動速度改變形狀。

首先,設計一個正方形,寫一段能做到讓它跟隨鼠標的代碼,這樣就把運動追蹤問題先單獨拎出來解決掉了。當然這才是第一步。

接下來,將這個正方形的大小與鼠標的速度相關聯,即解決了形狀隨速度而變的問題。

最后,創建你想要的實際形狀,并把這三個組件連接在一起即可。

運用這種方法自然而然地就編寫出來了模塊化的代碼。并且每個組件都有它自己獨立的功能。這對代碼重用是非常有用的(例如,你完全可以在其他項目中應用第一步驟(用于實現鼠標跟蹤)的代碼),并讓我們的程序更容易調試和維護。

譯文鏈接:http://www.codeceo.com/article/11-tips-improve-coding-skill.html
英文原文:How to Improve your Skills as a Programmer
翻譯作者:碼農網 – 小峰

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!