史上最最佳軟體開發實踐指導
每過一段時間,我都能讀到一些好東西,它是如此的深刻見解,寫的如此的清晰,如此的條理,我必須把它收錄進我的個人“史上最佳”聖物集裡。最近,我新收錄了一篇,非常棒的一篇叫做《Best Practices for Scientific Computing》的文章,我希望每個來讀本文的讀者都找個時間讀讀它。我在這裡列出它的要點,是要鼓勵你去閱讀完整的全文。寫的真是非常好。
-
給人寫程式,而不是給計算機。
- 一個程式,對於閱讀它的人來說,不應該要求讀者一次性的在大腦里載入過多的背景/相關知識。
- 命名需要一貫、明確、有意義
- 程式碼風格和格式要統一一致
- 軟體開發中的各種工作都要分割成1小時左右的任務
-
重複性的工作自動化。
- 讓計算機去做重複性的工作
- 把最近使用過的命令存到一個檔案裡,以備複用
- 使用編譯工具來自動化系統流程
-
用計算機做歷史記錄
- 用軟體工具來自動跟蹤計算機的工作
-
逐步改進。
- 每次做一小步,及時獲得反饋,及時糾正
-
使用版本控制。
- 使用一個版本控制系統
- 所有由手工建立的東西都要放到版本控制系統裡
-
不要重複自己(或他人)。
- 系統中的每一段資料都要有一個權威的單一的存在
- 程式碼應該模組化複用,而不是考來粘去
- 複用程式碼,而不是重寫程式碼
-
準備好對付錯誤的方法
- 在程式中增加斷言,檢查它們的各種操作
- 使用現成的單元測試框架
- 測試程式時借鑑所有的可用的經驗
- 把bug做成測試用例
- 使用一個有程式碼指令的除錯工具
-
只在軟體能正確的工作後才可優化。
- 使用監控工具找到瓶頸
- 儘可能的用高階語言寫程式
-
文件裡描述的應該是設計思路和目的,而不是技術細節。
- 描述介面和原因,而不是實現
- 重構程式碼,而不是註釋解釋執行原理
- 引用其它程式時嵌入其它程式的文件
-
協作
- 程式碼合併前進行程式碼審查
- 當幫帶新成員或解決特別詭異的問題時使用結對程式設計
我要額外提到的是這個:
11. 維新舊程式碼。
如果你還在猶豫不決是否去看那篇文章,那你先去看看它裡面列出的引用67部關於計算機的著作和文章。正如我說的,這篇文章是“史上最佳”。
相關文章
- 軟體開發最佳實踐
- 快速軟體開發最佳實踐(2)
- 快速軟體開發最佳實踐(1)
- 軟體開發中的10條最佳指導原則
- 軟體開發中的最佳實踐是什麼?
- 軟體開發中的10個最佳實踐技巧!
- 軟體開發和測試的 30 個最佳實踐
- 史上開發時間最長的軟體Xanadu釋出
- 軟體需求最佳實踐(1)
- 軟體需求最佳實踐(2)
- 軟體需求最佳實踐(3)
- 讀軟體開發安全之道:概念、設計與實施16安全開發最佳實踐
- 金融科技行業軟體開發的安全類最佳實踐行業
- Go單體服務開發最佳實踐Go
- Go 單體服務開發最佳實踐Go
- Laravel 開發最佳實踐Laravel
- JavaScript 開發最佳實踐JavaScript
- REST開發最佳實踐REST
- 彼之蜜糖,吾之砒霜——聊聊軟體開發中的最佳實踐
- 彼之蜜糖,吾之砒霜 —— 聊聊軟體開發中的最佳實踐
- CATIA軟體許可管理最佳實踐
- 最佳實踐(1):安卓開發安卓
- 敏捷軟體開發:原則,模式,實踐敏捷模式
- 理論指導實踐薦
- 規範軟體開發過程——軟體配置管理實踐
- 軟體開發的10個錯誤實踐
- 軟體開發實踐的24條軍規
- 最佳實踐(2):iOS開發篇iOS
- CSS最佳實踐團隊開發CSS
- 物聯網開發最佳實踐
- 用科學的思維方法指導軟體的設計開發
- JS程式設計實踐指導JS程式設計
- 物件導向(軟體開發概述)物件
- SpringCloud 微服務最佳開發實踐SpringGCCloud微服務
- iOS原生混合RN開發最佳實踐iOS
- 實踐中悟出的最佳JavaScript開發JavaScript
- 最佳實踐(3):Windows應用開發Windows
- 物件導向軟體工程方法學實踐 (轉)物件軟體工程