虽然持续集成(CI)在降低项目风险方面极为有效,但是它对日常编码活动有更多要求。在这份由两个部分组成的持续集成反模式文章的第二部分,自动化专家兼 Continuous Integration: Improving Software Quality and Reducing Risk 一书的合著者 Paul Duvall 继续介绍持续集成的反模式,并重点演示如何避免它们。
在这篇共两部分的文章的 第一部分,我描述了以下六种持续集成反模式:
这些反模式延迟或者阻碍了使用持续集成能够得到的好处。在第二部分中,我要介绍其他五种同样具有欺骗性的实践:
再次强调,要得到持续集成的诸多好处,那就应该理解这些反模式 — 并避免它们。
名称:瓶颈提交
反模式:开发人员在当日工作结束前提交代码修改,引起集成构建错误,妨碍团队成员正常下班。
解决方案:全天频繁地签入代码。
|
瓶颈提交是签入不够频繁 反模式的一种变体。它认为每天只要至少签入一次代码即可。但是,问题在于每个人都在同一时间 签入。在 CM Crossroads 的一篇文章中,Slava Imeshev 描述了为什么大多数构建失败都发生在晚上 5 点到 8 点之间(范围再小一些,还包括午餐时间)。在 “五点钟签入(Five-O'Clock Check-In)” 中,Imeshev 将这种情况的发生与开人员倾向于每天结束之前签入他们的代码修改这种习惯联系在一起(请参阅 参考资料)。
如果某个团队的规定是在所有修改都提交而且运行了构建之前不能下班,那么五点钟签入 将使您很快失去很多朋友。等待代码提交是件非常无聊的事情。想想如果构建出问题会怎么样?我想会有许多人打电话回家去解释为什么又得晚回家。
图 1 演示了软件开发团队签入的典型时间线。请注意库提交放在晚餐时间前后,在下班时间之前。
当然,这个问题的解决方案就是频繁地提交修改。通过频繁提交,就会拥有更小但更频繁的集成构建,而且在出现构建错误时,错误会较少,而且更容易修复。
五点钟的言外之意很清楚,所以为了自己和团队都应该频繁地签入代码,让五点钟成为多数人的快乐时光。