View on GitHub

eng-practices

Google's Engineering Practices documentation

紧急情况

有时候紧急 CL 必须尽快通过 code review 过程。

什么是紧急情况?

紧急 CL 是这样的更新:允许主要发布继续而不是回滚,修复显着影响用户生产的错误,处理紧迫的法律问题,关闭主要安全漏洞等。

在紧急情况下,我们确实关心 Code Review 的整体速度,而不仅仅是响应的速度。仅在这种情况下,审查人员应该更关心审查的速度和代码的正确性(是否解决了紧急情况?)。此外(显然)这类状况的审查应该优先于所有其他 code reivew。

但是,在紧急情况解决后,您应该再次查看紧急 CL 并进行更彻底的审查

什么不是紧急情况?

需要说明的是,以下情况并非紧急情况:

等等。

什么是 Hard Deadline?

硬性截止日期(Hard Deadline)是指如果你错过它会发生灾难性的事情。例如:

延迟发布一周并不是灾难性的。错过重要会议可能是灾难性的,但往往不是。

大多数截止日期都是软截止日期,而非最后期限。软截止日期表示希望在特定时间内完成某项功能。它们很重要,但你不应该以牺牲代码健康为前提来达到。

如果您的发布周期很长(几周),那么在下一个周期之前就可能会牺牲代码审查质量来获取功能。然而,如果重复这种模式,往往会给项目建立压倒性技术债务。如果开发人员在周期结束时经常提交 CL,只需要进行表面评审就必须“进入”,那么团队应该修改其流程,以便在周期的早期发生大的功能变更,并有足够的时间进行良好的审查。