史上最最佳軟件開發實踐指導

jopen 10年前發布 | 13K 次閱讀 軟件開發

每過一段時間,我都能讀到一些好東西,它是如此的深刻見解,寫的如此的清晰,如此的條理,我必須把它收錄進我的個人“史上最佳”圣物集里。最近,我新收錄了一篇,非常棒的一篇叫做《Best Practices for Scientific Computing》的文章,我希望每個來讀本文的讀者都找個時間讀讀它。我在這里列出它的要點,是要鼓勵你去閱讀完整的全文。寫的真是非常好。

  1. 給人寫程序,而不是給計算機。
    1. 一個程序,對于閱讀它的人來說,不應該要求讀者一次性的在大腦里加載過多的背景/相關知識。
    2. 命名需要一貫、明確、有意義
    3. 代碼風格和格式要統一一致
    4. 軟件開發中的各種工作都要分割成1小時左右的任務
  2. 重復性的工作自動化。
    1. 讓計算機去做重復性的工作
    2. 把最近使用過的命令存到一個文件里,以備復用
    3. 使用編譯工具來自動化系統流程
  3. 用計算機做歷史記錄
    1. 用軟件工具來自動跟蹤計算機的工作
  4. 逐步改進。
    1. 每次做一小步,及時獲得反饋,及時糾正
  5. 使用版本控制。
    1. 使用一個版本控制系統
    2. 所有由手工創建的東西都要放到版本控制系統里
  6. 不要重復自己(或他人)。
    1. 系統中的每一段數據都要有一個權威的單一的存在
    2. 代碼應該模塊化復用,而不是考來粘去
    3. 復用代碼,而不是重寫代碼
  7. 準備好對付錯誤的方法
    1. 在程序中增加斷言,檢查它們的各種操作
    2. 使用現成的單元測試框架
    3. 測試程序時借鑒所有的可用的經驗
    4. 把bug做成測試用例
    5. 使用一個有代碼指令的調試工具
  8. 只在軟件能正確的工作后才可優化。
    1. 使用監控工具找到瓶頸
    2. 盡可能的用高級語言寫程序
  9. 文檔里描述的應該是設計思路和目的,而不是技術細節。
    1. 描述接口和原因,而不是實現
    2. 重構代碼,而不是注釋解釋運行原理
    3. 引用其它程序時嵌入其它程序的文檔
  10. 協作
    1. 代碼合并前進行代碼審查
    2. 當幫帶新成員或解決特別詭異的問題時使用結對編程

我要額外提到的是這個:

11. 維護舊代碼。

如果你還在猶豫不決是否去看那篇文章,那你先去看看它里面列出的引用67部關于計算機的著作和文章。正如我說的,這篇文章是“史上最佳”。
[英文原文:Best Best Practices Ever ]
來自:http://www.vaikan.com/best-best-practices-ever/

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