代码审查(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。