AICon 上海站|90%日程已就绪,解锁Al未来! 了解详情
写点什么

另一种声音:持续集成已死

  • 2014-10-17
  • 本文字数:935 字

    阅读完需:约 3 分钟

持续集成(Continuous Integration)一直被认为是敏捷开发的重要实践之一,但也有专业人士开始挑战这种观点。Yegor Bugayenko 是 teamed.io 的联合创始人和 CTO,他在最近的一篇博客中毫不客气地指出:“持续集成已死”。

持续集成的目的简单而明确。当有人向代码库的主分支提交代码的时候,后台的持续集成服务器会尝试去构建整个产品,包括编译、单元测试、集成测试、质量分析等等。结果只有两种:成功或失败。如果结果失败了,那就说明有人提交了对产品有害的代码。

单从技术上讲确实如此,但 Bugayenko 认为,从整个组织的角度来讲,这却是不合时宜的。他认为最大的问题在于:

如果构建失败,整个开发团队必须停下手里的工作,立刻修复他们的错误。

谁愿意停下来呢?产品经理盯着产品早日上市,而项目经理,需要为项目的最后期限负责,被压力赶着走的程序员更不会了。Bugayenko 描述了他所见到的真实情况:

我们开始忽略持续集成的状态,不管是成功还是失败。我们还是埋头干我们手里的事情。也许明天,也许周一,等我们有空的时候再修复构建的错误。

Bugayenko 也尝试了用严格的纪律来保证团队及时修复错误,但这样也有问题:

如果这样做,你的最终结局就是得到一种“由恐惧驱动的开发模式”。程序员会害怕提交代码到仓库中,因为他们知道如果导致构建错误,他们至少要道歉。

严格的纪律只会使情况更糟糕,程序员更愿意把代码保留在本地以免犯错,从而拖慢了开发流程。等到必须要提交的时候,一次提交很多代码,如果出错,又很难回溯。

对于这种困境,Bugayenko 给出了他认为可行的方案:“对主分支实行只读策略”。这种方式禁止开发人员直接向主分支提交任何代码,取而代之的是一个脚本,它会在合并代码前做一系列测试,确保无错才允许提交。这样做解决了前面的两个问题:主分支永远是“干净”的;程序员也不用再担心犯错,因为他们最多就是被脚本拒绝提交而已。

Bugayenko 还给出了多篇相关文章来支持自己的观点。在博客的评论区,也有读者指出,Bugayenko 所说的解决方案在现实中一直被一些代码审核系统所采用。


感谢郭蕾对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2014-10-17 11:379139
用户头像

发布了 77 篇内容, 共 37.9 次阅读, 收获喜欢 26 次。

关注

评论 1 条评论

发布
用户头像
什么乱七八糟的文章
2020-09-01 16:24
回复
没有更多了
发现更多内容

三星业绩疲软寻求突破

科技热闻

谷歌发布 Agent SDK,可跨平台开发语音智能体;ViiTor AI 4.0 发布:3 秒样本情感声音克隆,TTS 模型开源

声网

ITSM运营:服务请求管理步步进阶

嘉为蓝鲸

AIOPS ITSM 智能运维

CAD怎么实现图形遮挡效果

极客天地

最新超全免费实用API接口大合集!程序员&开发者必备工具箱

代码忍者

“全息投影”式精细财务分析究竟需要什么样的数据库?

YMatrix 超融合数据库

流计算 财务 流式计算 YMatrix

Tivoli国产化替代:告别单体架构,嘉为蓝鲸全栈智能观测中心引领云原生监控新变革

嘉为蓝鲸

AIOPS 智能运维 可观测 全栈智能观测中心

CAD面域功能作用

极客天地

使用VSCode连接金仓数据库KingbaseES

金仓技术

数据库· KingbaseES 金仓数据库

如何使用通义灵码玩转Vim - AI编程助手提升效率

阿里巴巴云原生

vim

GPT-4o怎么抢了Midjourney的饭碗

脑极体

AI

企业网络管理复杂?SD-WAN来解决

Ogcloud

SD-WAN 企业组网 SD-WAN组网 SD-WAN厂商 SD-WAN厂家

《Operating System Concepts》阅读笔记:p636-p666

codists

操作系统

如何使用通义灵码玩转Vim - AI编程助手提升效率

阿里云云效

OpsPilot 揭秘 RAG 预处理优化:文档提取精度提升 30%,分块策略深度拆解

嘉为蓝鲸

智能运维 知识库 #WeOps

【Windows】如何在任意文件夹中右键打开cmd终端

知识浅谈

cmd window 快捷方式

伊登软件与华为云签订合作协议,共建企业应用+AI新范式

极客天地

当 MCP 遇上 Serverless,AI 时代的最佳搭档

阿里巴巴云原生

阿里云 Serverless 云原生

降本提效双丰收!嘉为蓝鲸DevOps研发效能管理平台 V7.1 春季首发,AI 赋能研运全链路

嘉为蓝鲸

智能运维 降本增效 产品发布 #DevOps

CAD怎么将图形移动到坐标原点

极客天地

华为云亮相 KubeCon Europe 2025,共启云原生下一个十年

华为云原生团队

云计算 容器 云原生

一款安全好用的企业即时通讯平台,支持统一门户

BeeWorks

即时通讯IM 私有化部署 企业级应用

CAD怎么实现XY不同比缩放

极客天地

AIoT 智变浪潮演讲实录 | 刘浩然:让硬件会思考:边缘大模型网关助力硬件智能革新

火山引擎边缘云

硬件 大模型 AI 大底座 边缘智能 大模型工具

拒绝停服, 随时回退:Sybase 到 Postgresql 的无缝数据库双向迁移方案

tapdata

容灾备份 sybase数据库 sybase迁移 高可用数据库迁移 CDC同步

嘉为蓝鲸 平台V5.4 :云原生底座+安全效能双引擎,重塑企业数字化转型基座

嘉为蓝鲸

智能运维 产品发布 研运一体化

多账号运营必备:OgPhone云手机功能分享

Ogcloud

云手机 tiktok运营 社媒运营 海外社媒运营 矩阵运营

支持纯内网使用,企业即时通讯平台推荐!

BeeWorks

即时通讯 IM 私有化部署 企业级应用 局域网视频软件

iVX:让开发者能「一键开挂」

代码制造者

无代码开发

面向企业级应用的React路由管理体系:react-router-manage实践

shinpei

前端 React

DeepSeek 谈运维:AI 重塑审批流,打造 IT 运维高效工作流

嘉为蓝鲸

AIOPS 智能运维 DeepSeek

另一种声音:持续集成已死_DevOps & 平台工程_曹知渊_InfoQ精选文章