如果引用或轉貼,麻煩註明出處與本網誌連結,否則視為侵權。

2020年1月15日

給新手程式設計師 - 養成幾個程式設計的習慣,對您將來有很大的幫助

作者: Fred F.M. Wang (FW知識瑣記) 日期: 2020-1-15

筆者超過三十年的程式設計生涯,寫過各類的程式語言,不變的部分是一些程式設計的習慣,這些習慣將影響您的工作甚大。

1. 註解,註解,註解
    不要以為你記得所有你寫過的程式,人的大腦記憶永遠是有限的,寫註解是幫助自己看懂寫過的程式,對團隊而言,註解是提升程式可讀性與可維護性的要素。

    程式開頭註解的重點是甚麼? 有下列幾點 :
    a. 這支程式是甚麼?目的是甚麼? 要解決甚麼問題? 需求來自哪裡?
    b. 誰寫的? 何時開始寫?
    c. 改了甚麼? 為甚麼修改? 何時改了? 誰改的? -- 將來不清楚可以找這個人問

   區塊的註解重點是說明下面程式區塊的目的,對複雜的邏輯進行解說,對變數的說明等等

   行內的註解重點是說明該行程式的目的,修改後的註解等等。

   另外,較大的程式結構,建議在結構的結束列加上註解,例如 :
   if(strpos($maindata,$checkdata) !== false) {
       ....
   }
   如果這個程式結構超過十行,或是包含多重的if結構,建議在結尾大括號加上註解,這樣才可以在閱讀程式時很快可以知道這個結尾括號對應於哪個起始括號,如下
   }  // if(strpos($maindata,$checkdata) !== false)
   這樣就很清楚這個 結尾大括號對應哪個if條件式。

2 縮排
    特定語言如早期的Fortran, COBOL 與現在的Python等需強制性的縮排,但是更多語言並沒有此種規定,造成較大較為複雜的程式結構不清楚,不容易閱讀。因此,槽狀程式,如多重迴圈與判斷式,一定要縮排。也可以使用一些程式編輯器,對程式進行縮排,透過縮排也可以檢討程式是否結構有問題。

3. 變數名稱可讀性
    許多程式設計師懶得打字,就將程式中的變數名稱用簡單的a, b, c, d等字母做為變數名稱,加上缺乏註解說明,程式就變得難以閱讀與維護。
    打字速度是程式設計師的基本能力,快慢沒有一定的標準,當然,越快對您的專業工作越有幫助。變數名稱應該是該變數用途的縮寫,至於有些人要加上變數型態在變數名稱中,各派說法不同,重點還是在變數名稱有意義絕對可以大幅提升可閱讀性。

4. 模組化
    開發軟體專案的過程中,為了趕進度,快點將程式寫完,常常忽略的是程式的模組化,沒能花點時間思考程式中有哪些可以再用的區塊,將此區塊寫成模組(或稱副程式/函式/程序等,不同程式語言名稱不同),這樣將錯過提高未來專案開發生產力的契機。
    程式模組化的幾大好處 :
    a. 提高程式的可讀性 : 越龐大的程式,閱讀上越困難,因此,將程式中的較複雜的處理或計算區塊,加以包裝成模組,簡化主程式的結構,在了解程式功能上更回快速。想要看特定細節再到模組(副程式)中去閱讀。為了提高可讀性將程式寫成階層性的結構,也有一些要注意的地方,第一要避免階層過多,第二避免過度包裝,也就是三到五行的程式就包裝成一個模組。
    b. 提高生產力 : 將可再用(可以重複使用)的模組/副程式/函式,做好的包裝,包含參數設計,註解說明,就成為具有價值得智慧財產,成為提高未來生產力的工具。

   c. 提高程式的可測試性與可維護性 : 越龐大的程式,越難以測試與維護,當我們遇到一個很複雜的問題,可以採用拆解再組合的方式,也就是將大問題,分成許多小問題,一個一個解決,再組合起來解決。測試龐大的程式也是這樣,經過模組化設計的程式,就可以針對程式使用到的模組(副程式)進行測試(針對模組開發測試程式),都沒問題了,再測試主程式。
  
   



沒有留言:

張貼留言

歡迎提供意見, 謝謝 (註 : 留言經過版主審核通過才會發布)