每日构建(转)

每日构建(转)

ID:40723867

大小:20.43 KB

页数:3页

时间:2019-08-06

每日构建(转)_第1页
每日构建(转)_第2页
每日构建(转)_第3页
资源描述:

《每日构建(转)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、每日构建在一个稍微大点的规模上,当你写代码时,你也处于一个REP循环的宏版本中,这个循环就是“编码-编译-测试”。你编写代码,把代码编译成可执行的文件,然后测试它,看一下运衅鹄丛趺囱?/P>关键一点是当你写一个程序时,你的工作过程是循环的。一个循环所花时间越短,你的生产力就越高,当然最短时间不会小于编译器运行的时间。这就是一个程序员为什么总是要一个真正够快的硬件而编译器开发者们总是不断使他们的编译器运行更快的正式的纯计算机科学角度的原因。VisualBasic的办法是当你输入代码时,它就开始进行代码的语法解析,这样程序解释运行时速度很快。VisualC

2、++的办法是增量编译(incrementalcompiles),预编译头文件(precompiledheaders)和增量链接(incrementallinking)。但是一个大型的团队有多个开发人员和测试人员,你碰到了同样的循环,可能不同点就是有更多的文档要写(可是这还只是草稿,天哪!)。一个测试人员发现了bug并报告,然后开发人员修复了这个bug。那么测试人员得到修正后的代码需要多少时间?在一些软件开发机构,这样的报告-修正-再测试循环(Report-Fix-Retestloop)可能需要几个礼拜。如果一个循环需要这么长的时间,通常意味着该机构生产力

3、很低。想让整个开发过程运转得更平滑一点,你必须想方设法使得报告-修正-再测试循环(Report-Fix-Retestloop)花的时间更少。一个好的办法是每日构建(dailybuilds)。每日构建意味着自动地,每天,完整地构建整个代码树、(译者按:“代码树”,原文为sourcetree,意思是将整个项目源代码的目录,子目录,文件的位置尽可能事先固定下来,这样在开发过程中各个模块间,各个文件间的相对位置都不会混乱。源代码树指的就是一个项目所有的已经组织好的代码文件。通常代码树应该用版本控制软件管理起来。虽然这个概念很基本,但是据我的观察,国内还是有软件公

4、司在这方面做的不够好的,所以有必要解释一下。)自动地-因为你设定代码每天在固定的时间构建。在Unix环境下使用cron,在windows下使用“任务计划”。每天-或者更频繁.当然每天构建的次数越多越好啦。但是有时候构建次数还是有上限的,原因和版本控制有关系,等会儿我会谈到的。完整地-很可能你的代码有多个版本。多语言版本,多操作系统版本,或者高端低端版本。每日构建(dailybuild)需要构建所有这些版本。并且每个文件都需要从头编译,而不是使用编译器的不完美的增量编译功能。以下是每日构建(dailybuild)能带来的好处:1.当一个bug被修正了,测试

5、者可以很快得到最新的修正后的版本开始重新测试,以验证bug是否真正地被修复了。1.开发人员可以更加确定他们对代码做的修改不会破坏1024个操作系统上的任何一个版本。验证这一点不需要在他们的机器上安装OS/2(IBM公司生产的PC机操作系统)。2.那些每天将修改过的代码导入(checkin)版本控制服务器的开发人员知道,他们对一个模块导入的修改不会拖别的开发人员的后腿。拖后腿的意思是,那些开发别的模块的程序员使用这个修改过的模块,出了问题,于是他们自己的模块也没有办法开发下去了。每日构建则不会有人拖后腿。如果把一个开发团队比作一台PC机,那么团队中的一个程

6、序员对某个模块的修改导致其他人无法开发别的模块,相当于PC机发生了蓝屏。当一个程序员忘记把他(她)新建立的文件导入到repository(指版本控制服务器上的代码树)时,这种开发过程中的“蓝屏”会经常发生。因为在这个程序员自己的计算机上有这个文件,所以他(她)构建这个程序没有问题。但是其他程序员是从版本控制服务器上导出(checkout)代码的,由于服务器上没有这个文件,他们遇到了链接错误(linkerror),无法继续工作了。3.外部团队(例如市场销售部门,进行beta测试的一些客户)可以获得一个比较稳定的版本,这样对他们开展自己的工作比较有利。4.假

7、如你将每日构建出的二进制文件(例如一个可执行程序,一个dll等等)存档管理,那么当你发现一个非常奇怪的,无法解决的bug时,你可以通过对这些文件进行二进制搜索(binarysearch)来确定什么时候这个bug第一次出现。如果有对代码进行了完善的版本控制,你也可以找出是谁在何时对代码进行的导入(checkin)导致了这个bug。5.当开发者修正了测试者报告的一个错误时,如果测试者同时报告了发现错误时的构建的版本,开发人员可以直接在那个版本中测试是否bug真正被修复了。(译者按:测试者报告出现了一个bug,只是报告了一个错误症状,而错误的原因可能有多个,每

8、个原因可能在不同的模块中。前文中的方法是为了避免只修正了一个模块中一个原因,别的

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。