史上最最佳軟件開發(fā)實踐指導(dǎo)
作者:佚名
最近,我新收錄了一篇,非常棒的一篇叫做《Best Practices for Scientific Computing》的文章,我希望每個來讀本文的讀者都找個時間讀讀它。我在這里列出它的要點(diǎn),是要鼓勵你去閱讀完整的全文。寫的真是非常好。
每過一段時間,我都能讀到一些好東西,它是如此的深刻見解,寫的如此的清晰,如此的條理,我必須把它收錄進(jìn)我的個人“史上***”圣物集里。最近,我新收錄了一篇,非常棒的一篇叫做《Best Practices for Scientific Computing》的文章,我希望每個來讀本文的讀者都找個時間讀讀它。我在這里列出它的要點(diǎn),是要鼓勵你去閱讀完整的全文。寫的真是非常好。
- 給人寫程序,而不是給計算機(jī)。
- 一個程序,對于閱讀它的人來說,不應(yīng)該要求讀者一次性的在大腦里加載過多的背景/相關(guān)知識。
- 命名需要一貫、明確、有意義
- 代碼風(fēng)格和格式要統(tǒng)一一致
- 軟件開發(fā)中的各種工作都要分割成1小時左右的任務(wù)
- 重復(fù)性的工作自動化。
- 讓計算機(jī)去做重復(fù)性的工作
- 把最近使用過的命令存到一個文件里,以備復(fù)用
- 使用編譯工具來自動化系統(tǒng)流程
- 用計算機(jī)做歷史記錄
- 用軟件工具來自動跟蹤計算機(jī)的工作
- 逐步改進(jìn)。
- 每次做一小步,及時獲得反饋,及時糾正
- 使用版本控制。
- 使用一個版本控制系統(tǒng)
- 所有由手工創(chuàng)建的東西都要放到版本控制系統(tǒng)里
- 不要重復(fù)自己(或他人)。
- 系統(tǒng)中的每一段數(shù)據(jù)都要有一個權(quán)威的單一的存在
- 代碼應(yīng)該模塊化復(fù)用,而不是考來粘去
- 復(fù)用代碼,而不是重寫代碼
- 準(zhǔn)備好對付錯誤的方法
- 在程序中增加斷言,檢查它們的各種操作
- 使用現(xiàn)成的單元測試框架
- 測試程序時借鑒所有的可用的經(jīng)驗
- 把bug做成測試用例
- 使用一個有代碼指令的調(diào)試工具
- 只在軟件能正確的工作后才可優(yōu)化。
- 使用監(jiān)控工具找到瓶頸
- 盡可能的用高級語言寫程序
- 文檔里描述的應(yīng)該是設(shè)計思路和目的,而不是技術(shù)細(xì)節(jié)。
- 描述接口和原因,而不是實現(xiàn)
- 重構(gòu)代碼,而不是注釋解釋運(yùn)行原理
- 引用其它程序時嵌入其它程序的文檔
- 協(xié)作
- 代碼合并前進(jìn)行代碼審查
- 當(dāng)幫帶新成員或解決特別詭異的問題時使用結(jié)對編程
我要額外提到的是這個:
11. 維新舊代碼。
如果你還在猶豫不決是否去看那篇文章,那你先去看看它里面列出的引用67部關(guān)于計算機(jī)的著作和文章。正如我說的,這篇文章是“史上***”。
責(zé)任編輯:林師授
來源:
外刊IT評論