本文於2017年6月21號發佈在個人博客中,因爲個人博客關閉,全部遷移到CSDN,以下是正文:
今天召開了項目組例會,搞了一件非常大的事情:部門代碼質量規範!
規範
規範提了很多要求:
- 個人級review
- 代碼合入主幹前必須經過多個流程
- 開發者review
- core review
- PM review
- 項目組成員包括:
- PM:負責產品層面的把關,決定某個特性是否合入版本
- core:核心開發者,對代碼架構非常熟悉,負責技術層面的把關,決定某個實現方式是否合適
- others:開發者、其他對該項目感興趣的羣衆,對於項目成員提交的代碼可以發表個人意見,但不影響代碼的合入
- 代碼review工具:gerrit
- 各角色職責:
- PM:workflow -1 ~ +1
- core:code-review -2 ~ +2
- others: code-review -1 ~ +1
- 代碼合入主幹前必須經過多個流程
- 版本級review:飛檢
- 固定版本週期從同能力中心的飛檢資源池中找兩名非項目組成員,由項目組架構師負責功能講解,挑出高風險片段進行飛檢
醜媳婦見公婆
經過最近一段時間的CICD之旅,我逐漸明白一些事情,代碼質量提升的關鍵在於參與編寫代碼的每一個人,外在施壓效果很有限。
我舉個編寫單元測試用例的例子。早上上班,打開郵箱就看到了每日構建的報告,報告內容大致是:
startExecution_case01.....
startExecution_case02.....
startExecution_case03.....
startExecution_case04.....
stopExecution_case01.....
stopExecution_case02.....
stopExecution_case03.....
stopExecution_case04.....
xx test cases, xx failure...
再看一個,文件命名的例子。打開項目目錄樹:
project-------
......
|---testCase
|---JamesUnitCase
|---TomUnitoCase
......
在諸多的代碼提交中,絕大部分提交代碼行數超過100行,打開一看,“哦,原來是一個不瞭解抽象的傢伙”。
如何提升質量
我覺得想要提升代碼質量,需要時刻記住:
- 目標受衆是誰?這裏的目標受衆包括:代碼review的人、計算機、以及那個記性不好的自己等等
- 目標受衆想要看到什麼?
我很喜歡一句話:你有多用心,就有多精彩!