1. 程式人生 > >如何構建高質量高可用的軟件

如何構建高質量高可用的軟件

方法 助攻 正常 .com lam 日誌 簡潔 poc 隔離

概述

這篇文章主要做一個關於“代碼、系統、工程”質量的系列文章的索引。

要構建高質量高可用軟件,個人覺得,可以分四層來進行:

  • 代碼質量: 高質量軟件的基石。 任何設計、測試和工程方法都無法挽救爛代碼寫出來的系統。
  • 設計質量: 高可用軟件的指引。 高質量軟件需要設計質量的指引,合理地劃分模塊和組合; 高可用軟件更需要仔細的設計和權衡。
  • 測試質量: 通過良好設計和實現的系統,需要測試質量來把關,保證代碼沒有重要BUG和變更不影響原有系統。
  • 工程質量: 在代碼、設計、測試質量的保證下,還需要工程手段(比如持續集成、線上錯誤巡檢等)來聚合所有的環節,保證更好的輸出。

代碼質量

代碼質量的提升,主要可以通過遵循良好的編程風格和習慣、追求和學習編寫優秀代碼、對代碼細節的重視、以及團隊CodeReview

來實現。 代碼能力就像球員的腳法和控球技術,腳法不細膩的人很容易自潰防線。

  • 如何編寫可信賴的代碼
  • 一個圖片文件批量重命名工具的質量改善過程
  • 改善代碼可測性的若幹技巧
  • CR常見代碼問題
  • CodeReview實踐與總結
  • 編寫更少bug的程序的六條準則
  • 如何使錯誤日誌更加方便排查問題
  • 反思: 為什麽我連普通的程序都寫不好?
  • 程序健壯性: 正常、錯誤和異常
  • 代碼質量準則
  • 提高代碼可讀性: 命名技術

設計質量

設計質量的提升,需要豐富的開發設計經驗、對健壯性、穩定性、擴展性、可維護性、高壓力承載能力等系統質量指標的全面理解,以及仔細考量避開陷阱。設計質量就像球員對全場的理解和掌控能力,懂得很好的傳球和助攻。

  • Web服務端軟件的服務品質概要
  • 因修改報表名稱引發的“慘案”
  • 編寫職業水準的程序

測試質量

測試質量的提升,主要可以通過單測、接口測試、壓力測試等來保證。

  • 使用Groovy+Spock輕松寫出更簡潔的單測
  • 深入探究單元測試編寫
  • 使用Java函數接口及lambda表達式隔離和模擬外部依賴更容易滴單測
  • 輸入輸出無依賴型函數的GroovySpock單測模板的自動生成工具(上)
  • 克服“測試怠惰”的習慣

工程質量

工程質量的提升,主要可以通過持續集成、錯誤巡檢等手段來保證。

  • 發貨服務化的工程質量實踐
  • Extjs4前端開發代碼規範參考
  • 保持應用系統可維護性的八個實際措施

如何構建高質量高可用的軟件