XP的一个最佳实践(看看gigix翻的Martin Fowler的文章)
关键:完全的自动化,读取源代码、编译、连接、测试,整个过程都应该自动完成。
与每日构建的区别 (每日构建(daily build)是你的朋友)
-
持续集成强调集成频率。目前的最佳时间是每小时就集成一次,每日构建顾名思义;
-
持续集成强调及时反馈。每日构建目的是为了等到稳定的发布版本,而持续集成主要目的是为了集成失败后及时向开发人员反馈,当然,集成成功之后便是稳定的发布版本;
-
持续集成鼓励开发人员尽快提交(check in)代码并反馈,每日构建不含次内容;
思考:可以说持续集成是每日创建的升级版,但是对大部分团队(至少我们是这样)每日集成一次已经足够。当然,能以每小时为集成单位的团队战斗力是相当惊人的。
传统方式将项目分成若干个模块,开发完成之后进行集成。导致了项目早期存在的BUG在集成测试之后才被发现,由于集成阶段的复杂程度相对较大,排查和解决这些问题需要耗费大量人力,甚至出现无法解决的硬伤。于是,频繁的臭虫会议(bug meetings)成为相互推诿、扯蛋的无聊会议。持续集成通过频繁构建来尽量的发现集成测试之前的BUG,并反馈。
思考:持续集成以测试技术为基础,能否检测出BUG取决于是否有足够的单元测试用例。如果没有良好的测试技术,持续集成和每日构建无异。另,我认为持续集成还能发现单元测试的不充分之处,发现关联模块引用的测试不充分。这样就能一定程度上解决修复了一个BUG之后带来了一个新的BUG。即在集成阶段还保持对单元的有效测试。
问题:界面的单元测试?最终还是需要集成、回归测试来实现。持续集成对于集成阶段的好处?
目前我们的做法仅仅是有个配置管理员来进行构建,频率也不高,仅在每次版本发布前进行。
大家是如何做持续集成的,过程中有没有碰到什么难点。有什么好的经验吗?
分享到:
相关推荐
思科网络构建的基础图片,apk格式的,很基础,希望帮助你们
《高性能Linux服务器构建实战》实例代码分享 压缩包,你们懂的
描述中提到“想要学习NE的可以看看,对你们是有很大的好处,NE虽然是最基础的”。这部分信息表明,本教材适宜那些想要入门网络工程的读者,并且强调即便是基础知识,对于中小型企业构建网络也是至关重要的。这是因为...
"javaA你们会用到的"这个压缩包文件显然包含了对Java开发者非常实用的资源,特别是Java Standard Edition (Java SE) 和 Java Enterprise Edition (Java EE) 的API文档。 Java SE API是Java开发的基础,它提供了一...
如果你们使用Flink也是和我们之前一样,不知道如何使用我们的Flink实时计算平台,或者不知道该怎样合理利用其Features去更好构建我们的工程,再或者你想了解每天处理超过12亿条实时数据,数据实时性达到秒级,QPS可...
先是在exclipse安装了sdk并修改了host文件网络配置的童鞋,很有可能在重重安装之后,好不容易打开发现gradle构建不成功,提示网络链接问题。这时候,回去把你们的网络配置还原应该就好啦
【标题】"稳定Gh0st(免杀源码你们懂的)" 指的是一种经过优化和改进的Gh0st远程控制木马程序,它的设计目标是提高在目标系统上的隐蔽性和持久性,同时也尝试绕过安全软件的检测,即所谓的“免杀”特性。Gh0st是一种...
BokeCMS是一个基于.NET平台的内容管理系统(CMS),用于构建网站并管理其内容。"SQL+NET精品"描述可能指的是该系统充分利用了SQL数据库管理和.NET框架的技术特性,为开发者提供了高效且灵活的工具来处理数据和实现...
当我在2018年开始这个项目时,我没有任何想法,这对你们中的很多人都会有用。 Qt公司于2020年12月8日发布了Qt 6.0.0。代码库中进行了许多更改,主要是Qt决定最终qmake作为构建系统。 由于这是一个重大更改,因此我...
"你们想要的java jar包全都有"这个标题暗示了这是一个包含各种Java库和框架的集合,可能涵盖了开发Java应用时所需的多种依赖。 描述中的重复表达进一步强调了这个压缩包提供了开发者在项目中可能需要的各种Java依赖...
这是第一届全国中文知识图谱研讨会演讲PPT,在清华大学举行,主要内容包括: 阿里巴巴一淘及搜索事业部——陈维 NLP Techniques in Knowledge ...这方面关于知识图谱的资料比较少,希望对你们有所帮助~ By:Eastmount
- **案例**:文中提到的陈培华等矿嫂,不仅在家务上给予丈夫最大的支持,还在矿工们的工作环境中发挥重要作用,如参与安全宣传、井口服务等,从而构建了一个更加安全的工作环境。 #### 知识点四:情感支持 - **定义...
【标题】:“自己看,和你们没有关系” 【描述】:“自己的东西,就是一个过渡” 尽管标题和描述似乎并不直接提供具体的技术信息,但我们可以从标签“其他”中推测这是一个涵盖广泛IT主题的压缩包,可能包含了一些...
高中三年,你们建立了深厚的友谊,但人际关系的构建远不止于此。在未来,你会遇到更多的人,学会尊重他人,倾听他人的观点,这将有助于你们建立广泛的社交网络,为个人发展铺路。同时,不要忽视与家人的情感联系,...
在本场景中,我们探讨的是一个关于"你们公司生产环境的分布式搜索引擎是怎么部署的呢?"的主题,这通常涉及到Java高并发API的应用。以下是关于这个主题的详细知识点: 1. **分布式搜索引擎基础**:分布式搜索引擎如...
她将与我们的儿子共同构建新的家庭,我们相信他们会创造出属于自己的美好未来。希望你们两家能成为亲密的亲家,共同分享喜悦,共度难关。 在座的每一位宾客,你们都是我们生活中不可或缺的一部分,你们的祝福和关怀...
我们期待看到你们的进步,也期待你们的反馈,共同构建一个互动、和谐的学习环境。 老师们,我们是学生成长的引路人,让我们携手共进,为每一个孩子的未来付出我们的心血。同学们,北营中学是你们的家园,我们要一起...
只有大家齐心协力,才能构建起坚实的安全防线,共同唱响矿井安全生产的幸福之歌。在追求经济效益的同时,绝不忽视安全,因为没有什么比矿工的生命安全更重要。 综上所述,技术安全是矿工工作的首要任务,关系到每个...
Flex是Adobe公司开发的一种用于构建富互联网应用程序(Rich Internet Applications,RIA)的开源框架,它主要基于ActionScript和MXML语言。本压缩包中的“flex帮助文档”包含了关于Flex开发的相关知识,对于初学者和...