概述:本文主要介紹保證代碼質量的手段和流程
代碼質量是公司賴以生存的土壤。產品質量是紅線,任何時候都不能逾越。目前代碼質量管理的流程中,大部分借助工具實現,可靠性、自動化程度較高。
一、代碼質量的四個方面
1. 意識培養 + 成文的規范保證
新員工入職,會進行詳盡的培訓,主要包含以下內容:
-
- 代碼整潔之道
- 編程最佳實踐
- 團隊自己成文的編碼規范(類似開發者手冊),涵蓋命名、圈復雜度、單元測試和覆蓋率等指標性要求
2. 強大的 CI 守護系統
CI(Continuous integration,持續集成)在企業級開發中扮演着非常重要的角色。所謂 CI,簡單的理解就是:我們每次提交代碼時,都會做各種各樣的檢查和測試以保證質量(CI 防護網),通過之后才有可能將代碼集成到代碼庫的主干上去。由於這個過程很頻繁,所以叫做持續集成。現在還發展出了 CD(持續部署)。
實際工作流程如下:
- 自查語法,並在本地執行各種檢查。包括但不限於圈復雜度、PCLint、安全分析、單元測試、代碼覆蓋率等等。
- 本地檢查通過后,再推代碼入庫。此時會觸發 CI 防護。CI 自動合並代碼,將各個庫的代碼放到同一目錄下(或者通過軟連接來實現),然后編譯。編譯之后做靜態檢查。如果不能通過,則返回至提交者。
分層多維度CI:每次提交都會進行 CI 防護(Verify CI),每天凌晨執行 Daily CI。Daily CI 比 Verify CI 更加全面,Verify CI 通常是做增量檢查,Daily CI 則是全量檢查。
3. 嚴格的 code review
接上述流程,如果 CI 檢查通過,流程走到代碼審查。代碼審查通常由 team leader 或骨干成員執行,如通過審查,則提交至主干,如未通過,則返回提交者繼續修改。
4. 強大的度量系統
每人每月的代碼量,譬如增刪多少行,凈增多少行,都有詳細報表。CI 通過率也會有詳細統計。
二、整體流程圖
補充資料
1. 圈復雜度和代碼質量優化;
2. PCLint 入門;
3. 代碼度量工具——SourceMonitor的學習和使用;