【ArchSummit架构师峰会】探讨数据与人工智能相互驱动的关系>>> 了解详情
写点什么

管道式的持续集成解决方案好吗?

  • 2007-09-29
  • 本文字数:941 字

    阅读完需:约 3 分钟

敏捷开发的最佳实践之一就是持续集成,它使团队成员可以有规律地将他们的代码与基线集成并运行所有的单元测试和系统测试。在大多数团队中,当代码检入后, 持续集成服务器都能很快地自动完成这个工作。通常在项目初期一切都很顺利,但有时当团队或代码基线变得很大时,持续集成的速度就会开始下降。构建内容在增 加而反馈速度却在下降,构建一次可能要花上一小时甚至更多才能知道成功与否,而些时,有人可能已经将他们的代码检入到构建失败的版本中了。

为了解决这个问题,很多团队使他们的持续集成“管道化”,即分阶段进行构建。运行轻量级的构建,这个构建仅包括执行速度较快的那些测试,这样团队可以较快的得到初步结果,而更大范围的构建会在后台运行。而那些较慢的功能 / 集成 / 系统测试会在随后的阶段执行。 Simon Stewart 认为这种解决方案是有好处的

这就是我们为什么最终会采用构建管道来做解决方案。较迟的构建比较早的构建会执行的更慢一些,但一切是按照能够提供更快反馈的方式来组织的。我们知道我们 只需要手工测试这些构建,让它们穿过管道的终点,假如我们向其中增加一些阶段,那么我们对应用程序按照预期方式执行的自信就会随之增加。如果我们足够聪明 (快看!我们又一次拉动了“聪明”这根杠杆!)的话,我们还可以把应用部署到越来越现实的环境中,并且把它当作管道的一部分来在上面运行测试,而这些是我 们在使用开发工作站时从来没有想到的事情。

然而,不是所有人都认为这是个好主意。 ThoughtWorks 的 Julian Simpson 把它叫做“厄运管道(pipeline of doom)”。他认为,我们是在用管道(一个慢速构建机制)来回避这个问题,而不是解决这个问题。这种方法只能给我们虚假的信心,认为我们的集成是成功的。开发人员一直在几个迭代中使用这些不好的代码,这只能加剧问题。

我发现管道方法存在另一方面的问题,那就是在开发者检入代码之前不会迫使他们运行功能测试,这就相当于你不让他们通过重构去改进代码。而假如大家运行它们 时感到痛苦的话,他们就有动力去解决它们。那些测试相当于给你当头棒喝:你必须小心又小心,否则,你可能在一天内只能运行很少的几次测试。

那么,你的团队使用了阶段化持续集成了吗?对你来说,效果如何呢?

查看英文原文 Is a Pipelined Continous Integration a Good Idea?

2007-09-29 05:13910
用户头像

发布了 100 篇内容, 共 20.9 次阅读, 收获喜欢 5 次。

关注

评论

发布
暂无评论
发现更多内容

某大厂开发者对于Java多线程的总结,Java排序算法面试

Java 程序员 后端

三年开发经验,从抖音组离职后,一口气拿到15家公司Offer

Java架构师迁哥

译介:《电动滑板车的崛起》

姬翔

Android音频API

轻口味

android 音视频 引航计划 9月日更

一期投资30亿!“中国—东盟星动云算力中心项目”将落地广西巴马

旺链科技

数字经济 产业区块链 一带一路

闲鱼消息发展回顾

OpenIM

每个程序员都必须掌握的8种数据结构,2021Java开发面试解答

Java 程序员 后端

DBA:介里有你没有用过的“CHUAN”新社区版本Redis6.0

华为云开发者联盟

redis 开源 多线程 Redis 6.0 华为云DCS

从 0 到 1 开发一个聊天通讯 服务 复盘总结分享

程序员海军

Vue 大前端 websocket 实时通讯 引航计划

ShardingSphere 分片利器 AutoTable:为用户带来「管家式」分片配置体验

SphereEx

数据库 开源

通过线路输入功能快速创建吉他谱

懒得勤快

每个程序员都必须掌握的8种数据结构,springmvc源码流程总结

Java 程序员 后端

没想到专科的我也能拿到年薪30W的offer,仅凭阿里这份JDK源码笔记

Java架构师迁哥

在外包做开发3年,为了进大厂,耗时半年,整合出25W字Java全栈面试题,这就是我的决心

Java架构师迁哥

【预告】网络研讨会|下一代汽车操作系统微内核seL4:seL4基金会主席谈物理系统安全工程实践

鉴释

自动驾驶 操作系统 微内核

鲲鹏BoostKit虚拟化使能套件,让数据加密更安全

华为云开发者联盟

鲲鹏

垃圾弹窗广告,如何清除互联网世界的牛皮癣

石头IT视角

主机监控用什么软件好?监控机制是怎样的?

行云管家

运维 IT运维 主机监控

【Vuex 源码学习】第三篇 - Vuex 中 State 状态的实现

Brave

源码 vuex 9月日更

我用MRS-ClickHouse构建的用户画像系统,让老板拍手称赞

华为云开发者联盟

数据库 标签 用户画像 MRS ClickHouse 列式存储

普通二本的辛酸Java面试之路,34岁Java程序员裸辞

Java 程序员 后端

“人类高质量数据”如何训练计算机视觉模型?

澳鹏Appen

计算机视觉

作业八:设计消息队列存储消息数据的 MySQL 表格

燕燕 yen yen

#架构实战营

Python——绑定与方法调用

在即

9月日更

图计算的应用

6979阿强

普通二本的辛酸Java面试之路,Java程序员架构之路该如何继续学习

Java 程序员 后端

来自阿里巴巴佛系Java程序员的指南,惊喜

Java 程序员 后端

玩转anyRTC用户控制台

anyRTC开发者

音视频 WebRTC 语音通话 视频通话 用户后台

来一份全面的面试宝典练练手,6年老Java面经总结

Java 程序员 后端

Apache ShenYu源码阅读系列-基于WebSocket的数据同步

子夜2104

Java 开源 网关 shenyu

60w“跳”进腾讯!你知道我经历了什么吗?

Java架构师迁哥

管道式的持续集成解决方案好吗?_研发效能_Amr Elssamadisy_InfoQ精选文章