代碼審查(code review)是我們日常開發工作中非常重要的一個環節,每個合并請求(MR)都必須進行 code review。好的 code review 保證了我們在快速迭代的同時,代碼具備足夠的健壯性和可維護性,這是我們確保產品質量的基石。極狐GitLab 的所有 MR,無論是由極狐GitLab 團隊成員還是社區成員編寫,都必須經過 code review 流程,以確保代碼有效、可理解、可維護和安全。
~"security-review::approved"
的標記。請先閱讀 JiHu Contribution Review Process,了解 GitLab Inc. 關于 JiHu Contribution 的 review 流程。
LGTM
或者 Looks good
等表示通過。所有極狐GitLab 的工程師都可以作為 reviewer 對同事和社區貢獻者的 MR 進行 code review,但只有 maintainer 才有權接受 MR。
Maintainer 是 code review 方面的專家,非常了解極狐GitLab 的產品特性、相關代碼和編碼規范,并且有權合并一個或多個極狐GitLab 項目中的 MR。下表列出了當前我們所有的 maintainer:
Area | Maintainers |
---|---|
Backend | Baodong: @icbd on both jihulab.com and gitlab.com Dave: @daveliu on both jihulab.com and gitlab.com Fu: @prajnamas on both jihulab.com and gitlab.com Chao: @chaomao on both jihulab.com and gitlab.com Martin: @mtan-gitlab-cn on jihulab.com and @mtan-gitlab on gitlab.com |
Frontend | Jeremy: @jeremywu on jihulab.com and @JeremyWuuuuu on gitlab.com |
快速提升 code review 能力的最佳方式就是盡可能多地參與 MR 的 review,在 MR 中添加你的 review comments,并持續關注這些 comments 的進展直至 MR 被合并或關閉。如果在 code review 的過程中遺漏了一些本應關注的點,請把它們記錄下來以確保在后續 review 別的 MR 時不會出現類似的問題。
成為 maintainer 需具備如下兩個條件:
持續做到上述兩點后,你可以通過如下方式申請成為 maintainer:
批準上述 MR 的流程如下:
在批準成為 maintainer 后,你的 manager 需要:
#engineering-internal
channel 中正式宣布此事。#engineering-maintainers
channel 中。在接收到一個 code review 請求后,應該盡早進行響應,和代碼作者進行溝通,我們認為從收到 MR 到第一次進行響應的時間,不應該超過兩個工作日。
如果你被分配 review 一個 MR 但卻無法在兩個工作日內開始,你應該在 MR 中留下評論,告知作者你會延遲響應。如果可能,你還應該告知作者何時可以開始,或者幫助他們找到替代 reviewer。
作為 MR 的作者,如果第一響應時間內沒有收到回復,你可以嘗試聯系 reviewer,或者尋找其他 reviewer。
在提升 code review 的速度方面有以下建議:
成為 reviewer 是一項具有挑戰的工作,有時需要在開發迭代和質量之間做出平衡。但我們認為對 MR 質量的追求,是我們不能妥協的地方,我們在這里列出一些常見的衡量 MR 質量的關注點,這些并不是全部,但可以作為參考:
每個 reviewer 都有自己的 code review 風格,他們有自己的專業知識可以提供,但總的來說,我們希望共同致力于確保極狐GitLab 的高質量標準和為我們的用戶提供更好的服務。
在極狐GitLab,我們的目標是盡可能地具有包容性,為大家的成長和學習創造空間。 作為 reviewer,鼓勵作者提出問題,并無所畏懼地嘗試他/她認為正確的事情。雖然我們希望在極狐GitLab 中獲得最高質量的代碼,但我們還需要留出空間。在完美主義和推動產品進步之間取得一個巧妙的平衡,這是對 reviewer 一個具有挑戰的地方。
如果你發現自己正在處理一個不符合質量基準的 MR,我們要嘗試幫助作者從中受到啟發,學習經驗,再次嘗試寫出另一個更好的 MR。