1. 程式人生 > >技術管理者---提升研發程式碼質量---程式碼稽核Code Review

技術管理者---提升研發程式碼質量---程式碼稽核Code Review

本文是《技術管理者---提升研發程式碼質量》系列文章第三篇,第一篇整體介紹請看博文《技術管理者---提升研發程式碼質量---總體方法論》,第二篇整體介紹請看博文《技術管理者---提升研發程式碼質量---程式碼檢查工具Sonar》。本文重點講兩部分內容:1)GitLab MergeRequest介紹;2)研發體系流程中如何強制使用MergeRequest。

 

GitLab MergeRequest介紹

現在越來越多的企業選擇自建程式碼私服GitLab,用於託管本企業的產品程式碼。依附GitLab平臺,做Code Review有兩種方式,一種方式是使用外部同步系統Gerrit,第二種方式是使用GitLab自帶的Merge Request功能(當然還有其他的Code Review方式,博主就不介紹了)。 下面大致分析一下兩者的差異

結合第二篇博文中介紹的Gerrit使用的代價稍大一些,故博主所在公司使用GitLab自帶的Merge Request方式做Code Review。

同理,要想讓Code Review發揮作用,並且是持續的發揮作用,就必須將Code Review這一過程作為公司研發流程中必須經歷的一個環節,這樣才能保證Code Review持續的發揮作用。下面博主介紹GitLab的Merge Request與研發流程整合方法:

最重要的一環,Review管理員做MergeRequest的過程就是Code Review的過程,就這需要研發體系根據企業自身的研發規範與業務特徵,不斷沉澱出MergeRequest檢查項Item(博主將在後期單獨以一篇博文的形式介紹研發規範)。

 

研發體系流程中如何強制使用MergeRequest(配置、提交過程詳解)

  • 建立GitLab賬號打通Idea(建開發人員賬號)

由管理員在GitLab中建立賬號:劉青/LiuQin/[email protected]/qwer1234,此過程較簡單。

  • 建立開發人員SSH祕鑰上傳GitLab

在劉青機器所在客戶端建立SSH祕鑰:任意位置右鍵選單,選擇“Git Bash Here”

輸入如下內容(注意最後要回車三次):

$ git config --global user.name "LiuQin"
$ git config --global user.email "
[email protected]
" $ ssh-keygen -t rsa -C "[email protected]"

到如上所在目錄,拿到id_rsa的內容,上傳到GitLab對應賬號當中:

  • Idea依據遠端Dev分支,建立本地Dev分支(依據“研發體系怎麼使用GitLab 的MergeRequest(簡圖)”逐個展開詳解)

開發下載指定protected分支程式碼,並建立本地個人分支LiuQin_dev_20180820做開發(注意這裡必須將程式碼提交的目標分支設定為protected,只有管理員才能做Merge操作,不允許直接push到此分支)

  • Idea依據本地Dev分支,建立個人Dev分支

  • Idea在個人Dev分支開發程式碼,然後做Commit程式碼

  • Idea中Checkout到Dev分支,Pull最新Dev分支程式碼

  • Idea中Checkout到個人Dev分支,做原生代碼Merge(原Dev-->目的個人Dev)

  • Idea中解決衝突,將個人Dev再次提交併Push到遠端伺服器

  • 開發登入GitLab,看到自己分支發起MergeRequest請求

  • Review管理員登入GitLab處理此MergeRequest做程式碼稽核工作

稽核通過程式碼入庫(刪除開發個人分支),稽核不通過直接關閉此MergeRequest

如果管理員處理MergeRequest做code view的時候,發現待合併的有衝突了,會出現如下的情況(需要儘量避免這種情況,因為GitLab頁面做程式碼Merge很不方便),需要處理好衝突 再通過。

通過點選上面的“Resolve conflicts”就可以處理衝突,然後再返回做code view,處理Merge Request即可。

 

    這樣就可以將Code Review(用GitLab的Merge Request功能實現)作為研發流程必須經歷的一個環節發揮作用啦,祝各位讀者所在研發的研發質量越來越高。歡迎通過評論方式做討論。