【AICon】探索RAG 技术在实际应用中遇到的挑战及应对策略!AICon精华内容已上线73%>>> 了解详情
写点什么

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

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

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

关注

评论 1 条评论

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

选择适合您网站的 SQL 托管:MS SQL Server、Oracle、MySQL

小万哥

MySQL 数据库 程序员 sql 后端开发

Medis for Mac(可视化管理工具)v2.13.0激活版

影影绰绰一往直前

mybatis-plus代码生成器

智慧源点

Mybatis Plus 代码生成器

云原生微服务的SWOT分析

俞凡

微服务 云原生

Termius for Mac(SSH客户端)v8.4.0激活版

影影绰绰一往直前

FlowJo 10 for Mac(流式细胞分析软件)v10.4激活版

影影绰绰一往直前

JetBrains PhpStorm 2023 for Mac(PHP集成开发)v2023.2.4中文激活版

影影绰绰一往直前

04 | 复杂度分析(下):浅析最好、最坏、平均、均摊时间复杂度

鲁米

JProfiler for Mac(Java开发分析软件)v14.0.0永久激活版

影影绰绰一往直前

OmniReader Pro for Mac(图书阅读器) 2.6.2密码激活版

mac

苹果mac Windows软件 OmniReader Pro 阅读软件

SecureCRT for mac(终端SSH工具)v9.3.2激活版

影影绰绰一往直前

揭秘大脑中的贪婪因子:全面解析多巴胺

少油少糖八分饱

情绪 理性 大脑 快乐 多巴胺

What's new in Pika v3.5.2

apache/dubbo-go

redis 底层原理 Redis 7 Pika

Go 程序编译过程(基于Go1.21)

-Hedon🍭

Go 编译原理 Go 面试题 面经 后端 大厂 Go编译过程

架构实战营模块 2 作业

陈斌

架构实战营

再也不怕面试官问缓存雪崩、缓存击穿、缓存穿透了

程序员花卷

缓存 后端 缓存雪崩 布隆过滤器 可靠性设计

抖音订单接口在电商行业中的重要性及实践应用

Noah

CorelDRAW Graphics Suite 2023 for Mac(矢量图形设计工具) 完美激活版

mac

苹果mac Windows软件 矢量图形设计软件 CorelDRAW 2023

iA Writer for Mac(mac好用的写作软件)v7.0.0中文激活版

影影绰绰一往直前

JixiPix PuzziPix Pro for mac(强大的拼图软件)v1.0.20激活版

影影绰绰一往直前

抖音商品详情接口在电商行业中的重要性及实时数据获取实现

Noah

文心一言 VS 讯飞星火 VS chatgpt (148)-- 算法导论12.2 3题

福大大架构师每日一题

福大大架构师每日一题

一款充电桩解决方案设计

攻城狮Wayne

架构师的三类工作

agnostic

高防服务器租用注意事项

Geek_f19a80

服务器

在Go中构建复杂对象: 构建器模式指南

俞凡

golang 设计模式

Proxifier for mac(全局代理客户端)稳定版v3.11激活版

影影绰绰一往直前

[大厂实践] Netflix容器平台内核panic可观察性实践

俞凡

Kubernetes netflix 大厂实践

糟了,数据库崩了,又好像没崩

越长大越悲伤

MySQL MySQL 8.0

Studio One 6 Pro for mac(音乐创作编辑软件)v6.2.0永久激活版

影影绰绰一往直前

大模型技术的发展与实践 主赛道:技术人的 2023 总结

攻城狮Wayne

大模型 ChatGPT LLM

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