`
number017
  • 浏览: 31654 次
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

你们是如何构建的

阅读更多

XP的一个最佳实践(看看gigix翻的Martin Fowler的文章)
关键:完全的自动化,读取源代码、编译、连接、测试,整个过程都应该自动完成。
 
与每日构建的区别 (每日构建(daily build)是你的朋友)

  • 持续集成强调集成频率。目前的最佳时间是每小时就集成一次,每日构建顾名思义;
  • 持续集成强调及时反馈。每日构建目的是为了等到稳定的发布版本,而持续集成主要目的是为了集成失败后及时向开发人员反馈,当然,集成成功之后便是稳定的发布版本;
  • 持续集成鼓励开发人员尽快提交(check in)代码并反馈,每日构建不含次内容;

思考:可以说持续集成是每日创建的升级版,但是对大部分团队(至少我们是这样)每日集成一次已经足够。当然,能以每小时为集成单位的团队战斗力是相当惊人的。
 
传统方式将项目分成若干个模块,开发完成之后进行集成。导致了项目早期存在的BUG在集成测试之后才被发现,由于集成阶段的复杂程度相对较大,排查和解决这些问题需要耗费大量人力,甚至出现无法解决的硬伤。于是,频繁的臭虫会议(bug meetings)成为相互推诿、扯蛋的无聊会议。持续集成通过频繁构建来尽量的发现集成测试之前的BUG,并反馈。
 
思考:持续集成以测试技术为基础,能否检测出BUG取决于是否有足够的单元测试用例。如果没有良好的测试技术,持续集成和每日构建无异。另,我认为持续集成还能发现单元测试的不充分之处,发现关联模块引用的测试不充分。这样就能一定程度上解决修复了一个BUG之后带来了一个新的BUG。即在集成阶段还保持对单元的有效测试。
 
问题:界面的单元测试?最终还是需要集成、回归测试来实现。持续集成对于集成阶段的好处?

目前我们的做法仅仅是有个配置管理员来进行构建,频率也不高,仅在每次版本发布前进行。

大家是如何做持续集成的,过程中有没有碰到什么难点。有什么好的经验吗?

分享到:
评论
1 楼 gigix 2007-08-23  
说实话,没看明白你的问题到底是什么

相关推荐

    思科网络构建

    思科网络构建的基础图片,apk格式的,很基础,希望帮助你们

    《高性能Linux服务器构建实战》实例代码分享

    《高性能Linux服务器构建实战》实例代码分享 压缩包,你们懂的

    ARM 嵌入式LINUX 系统构建与驱动开发

    再次坦诚的说:我确实比较菜,说这些不是让大家羡慕,只是告诉你们“你们应该比这个更好” 我相信良好的态度+合适的方*+及时的总结=成绩 九 ARM都玩什么 就几点 1 硬件设计 2 系统移植 3 驱动开发 4 应用开发 没了...

    超市数据库的构建过程

    超市数据库的构建开发的过程,让你们更容易了解数据库的开发

    基于Flink构建用户实时基础行为工程

    如果你们使用Flink也是和我们之前一样,不知道如何使用我们的Flink实时计算平台,或者不知道该怎样合理利用其Features去更好构建我们的工程,再或者你想了解每天处理超过12亿条实时数据,数据实时性达到秒级,QPS可...

    不容易打开发现gradle构建不成功

    先是在exclipse安装了sdk并修改了host文件网络配置的童鞋,很有可能在重重安装之后,好不容易打开发现gradle构建不成功,提示网络链接问题。这时候,回去把你们的网络配置还原应该就好啦

    qt-build:一个(几乎)完整的qt构建环境,作为docker映像,占地面积小,版本众多

    当我在2018年开始这个项目时,我没有任何想法,这对你们中的很多人都会有用。 Qt公司于2020年12月8日发布了Qt 6.0.0。代码库中进行了许多更改,主要是Qt决定最终qmake作为构建系统。 由于这是一个重大更改,因此我...

    第一届全国中文知识图谱研讨会演讲PPT 清华大学

    这是第一届全国中文知识图谱研讨会演讲PPT,在清华大学举行,主要内容包括: 阿里巴巴一淘及搜索事业部——陈维 NLP Techniques in Knowledge ...这方面关于知识图谱的资料比较少,希望对你们有所帮助~ By:Eastmount

    NE 构建中小型企业网络 上册

    想要学习NE的 可以看看,对你们是有很大的好处,NE虽然是最基础的。

    maxplus license文件的构建方法

    maxplus软件注册时需要这个license文件,这个文件可以自己创建。现在将创建的方法提供给你们。

    最大堆的构建以及删除操作

    很简单,很实用的代码,分享给大家,希望能帮助你们

    使用 AbstractTableModel 构建Table 在表格中添加JButton按钮

    使用 AbstractTableModel 构建Table 在表格中添加JButton按钮,之前在网上找了2天没有找到好用的程序,最终终于找到一个好用的例子。 不要使,我退你们分。。 sing the Swing JTable class can quickly become a ...

    rabbitmq-c vs2017一次编译成功教程以及所需所有资源

    三 用命令行构建的时需要配置三个环境变量,路径需要替换成你们安装opnssl时选的路径 如下: OPENSSL_ROOT_DIR=D:\Program Files\OpenSSL-Win64 OPENSSL_INCLUDE_DIR=D:\Program Files\OpenSSL-Win64/include ...

    gru循环神经网络实现电影评价分类

    数据集和词向量压缩包里都有,无需额外下载,到手即...main.py是模型训练部分,你们可以在这里调参训练出自己模型。 use.py是模型使用部分,可以直接在这里调用训练好的模型。 详细步骤文档里都有介绍,喜欢就下载吧。

    HPF文件相关的.zip

    我经常看到人们要求提供超过 16 位左右的准确度的工具。 MATLAB 本身只允许您在标准... 同样,我想尝试构建这样一个工具,作为我前段时间编写的 VPI 工具的自然扩展。 我想学习一些处理大量数字的技术。 结果是 HPF。

    BoW|Pyramid BoW+SVM进行图像分类

    其实BoW的思想很简单,虽然很多人也问过我,但是只要理解了如何构建词典以及如何将图像映射到词典维上去就行了,面试中也经常问到我这个问题,不知道你们都怎么用生动形象的语言来描述这个问题? 用BoW描述完图像...

    summer-site::sun: 使用 Next.js + 主题 UI 构建的 Hack Club 2020 年夏季制作网站回顾

    如果这将是有史以来最好的夏天,那将是因为你们都选择攻击和学习。 您会选择将自己推到舒适区之外,无论是建立您的第一个网站还是模型火箭? 第一次使用 React.js 或者构建智能镜像怎么样? 在 Hack Club,我们将...

    storm-kakfa使用state例子源码

    这是我用kafka,storm-kafka,storm以state方式编写的一个demo,是从kafka里取得xml格式数据,然后通过state更新到存储你要保存的地方,保存的代码就靠你们自己写了。

Global site tag (gtag.js) - Google Analytics