速来报名!AICon北京站鸿蒙专场~ 了解详情
写点什么

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

  • 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:378954
用户头像

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

关注

评论 1 条评论

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

OPPO Find N3,解码“新商务场景”

脑极体

OPPO

两种情况下 不能放弃云计算! | David Hansson

B Impact

原来低代码开发如此简单

树上有只程序猿

软件开发 低代码 JNPF

国外怎么传大文件到国内,这款传输软件跨国企业必备

镭速

国外传输文件 跨国传输软件

鸿蒙OS应用开发初体验

巫山老妖

鸿蒙开发 鸿蒙系统

2023云栖大会议程&体验攻略

阿里云CloudImagine

云计算 云栖大会

iStat Menus for Mac(系统活动监控器) v6.72 (1226)中文激活版

mac

苹果mac Windows软件 iStat Menus 系统监控工具

Linux zip命令:压缩文件或目录

梦笔生花

ES6新特性(六)

阡陌r

JavaScript import ES6 export 模块化

mac电脑屏幕调节亮度软件 Lunar pro 激活最新版

mac大玩家j

Mac软件 屏幕亮度调整工具 屏幕管理软件

好用的全局代理客户端 Proxifier for Mac

展初云

Mac 代理 Mac软件 Proxifier

开发一个简单的管理系统,前端选择 Vue 还是 React?

互联网工科生

Vue React 管理系统

项目经理必备:6种有效的项目估算方法

爱吃小舅的鱼

项目经理 项目经理项目估算

DAPP 燃烧质押 TITAN 挖矿系统开发

l8l259l3365

Linux环境变量及作用

梦笔生花

编程和数学计算软件MATLAB R2023b for Mac

展初云

Mac matlab Mac软件

PHP/MySQL开发本地服务器 MAMP Pro for Mac

展初云

Mac软件 开发软件 MAMP

第17期 | GPTSecurity周报

云起无垠

商业模式画布的9大模块详细解读,一文弄懂产品经理必备技能!

彭宏豪95

创业 互联网 产品经理 商业模式 在线白板

Steinberg Cubase Pro 12 for mac激活版下载

iMac小白

Steinberg Cubase Pro Cubase Pro 12 Cubase Pro 下载 Cubase Pro 破解版

快手持续落地AIGC新应用场景 开启内测“AI小快”

Geek老T

AI 短视频 AIGC

问鼎之战 蓄势待发——鲲鹏应用创新大赛2023全国总决赛即将启幕!

Geek_2d6073

VMware Workstation 17安装教程:安装系统

小齐写代码

Mac系统的防病毒软件推荐Antivirus Zap - Virus Scanner 最新中文版

胖墩儿不胖y

Mac软件 杀毒软件 mac系统维护软件

Sketch for Mac最新破解版下载 完美兼容M1

iMac小白

sketch Mac Sketch下载 Sketch 98 Sketch破解版

Dual band WiFi 6 power with IPQ4019 and QCN9024 chips - the wireless future of choice

wifi6-yiyi

IPQ4019

DHorse改用fabric8的SDK与k8s集群交互

tiandizhiguai

Linux tar打包命令

梦笔生花

Acrobat Pro DC 2023 for mac中文完美破解版

iMac小白

Acrobat Pro DC 2023 Acrobat Pro DC下载 Acrobat Pro DC破解版 Acrobat Pro DC mac

文心一言 VS 讯飞星火 VS chatgpt (124)-- 算法导论10.5 5题

福大大架构师每日一题

福大大架构师每日一题

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