为什么必须使用构建服务器?

日期:2015-11-24作者:Brad Irby翻译:崔婧雯 来源:TechTarget中国 英文

【TechTarget中国原创】

构建服务器是用来构建应用的专用机器。构建服务器通常称为持续集成服务器;这两个理念有点不同,但是它们通常都绑定在同一台服务器上。开发人员每次添加新代码,添加内容会通知到构建服务器。服务器会相应得从代码仓库里pull新代码,从头构建,并且运行所有单元测试。最终结果是包含当前所有最新代码的干净构建。

技术经理有时质疑构建服务器没用,因为似乎单个开发人员通过在本地机器上构建也能达到相同的结果。但是,构建服务器和开发人员自行构建方案相比有几个重要优势。

受控、独立、可重复

构建服务器确保只有合适的代码进入构建。开发人员在其本地机器上使用新的软件产品,工具库或者其他工具。安装和卸载这些工具可能会留下

一些DLL,它们可能会被误用到构建里。这会导致通常会遇到的那句话:“但是这个在我的机器上能构建。”没有检查的源码也经常会听到这句话。有了专用构建服务器时,如果在build服务器上无法构建,就一定是什么地方出问题了。

另一个构建服务器能防范的错误根源是创建一个发布构建,而不是调试构建。测试中,开发人员可能会构建包含额外嵌入信息的代码来辅助调试。这样的信息减缓执行速度,并且增加了应用的大小,但是在解决问题时又不可或缺。构建服务器能够被配置来以发布模式构建应用,这时会移除所有的调试信息,使得应用足够小并且足够快。构建还能轻松扩展,为多种目标硬件构建,比如32或者64bit。

强制执行单元测试

强制执行单元测试是构建服务器的另一个职责。开发人员在提交代码时很容易忘记运行单元测试,或者在变化很小时觉得不需要运行完整的单元测试。构建服务器能够强制验证单元测试是否成功,如果在构建过程中任何单元测试失败了,甚至会拒绝开发人员添加的代码。

应用通常要求更多时间和数据敏感的测试,称为集成测试。这些测试以某种方式和周围环境交互,通常会从数据库查询数据。一般来说,这些测试要求数据库服务器上存在着一些特别的数据集,以支撑测试通过。

不仅仅要求特别的设置,这些测试还通常需要很长的运行时间。正确配置的持续集成服务器能够存储一个测试数据库,其中配置好了合适的数据,然后运行集成测试。花费大量时间的测试可以安排在下班时间运行。

保证代码质量

构建服务器提供了中央控制点来衡量代码质量。在构建时,可以生成测试覆盖率指标及其他代码质量度量,提供进度和质量的增量分析。甚至可以在覆盖率下降到某个百分比时拒绝代码的更新。

QA团队的集中测试位置

构建服务器的一大优势不仅仅有利于开发人员。有了可用的构建服务器,QA团队能够准确了解需要测试的是哪个版本。他们还通过引入自动化测试工具来流水线自己的工作流。

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

评论
查看更多评论

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

作者>更多

Brad Irby
Brad Irby

Brad Irby has been a developer and systems architect since 1990, designing and implementing systems using the Microsoft stack.

JBoss Web服务>更多

  • 为什么必须使用构建服务器?

    技术经理有时质疑构建服务器没用,因为似乎单个开发人员通过在本地机器上构建也能达到相同的结果。但是,构建服务器和开发人员自行构建方案相比有几个重要优势。

  • 25个可遇不可求的jQuery插件

    随着jQuery插件在网站建设过程中的使用率不断的增加,所以有必要跟进时代步伐开发出一些新的插件/代码片段,以此来巩固并提高前端用户体验,将用户体验提升到一个新的高度。

  • 专家全面解读WebService开发技术的奥秘

    SOA是当今企业软件架构的热点,而Web Service是SOA的一种较好的实现方式,但你对Web Service了解多少?

  • 七款让人跃跃欲试的jQuery超炫插件

    jQuery大大简化了我们的前端代码,因为jQuery的简单和开源,也涌现出了层出不穷的jQuery插件,你了解的都有哪些?

相关推荐

  • 防止重构问题最佳方法

    在我们的“Ask The Experts”会话中,Brad Irby回答了这一问题:如何重构问题未发生之前防止它?

  • 集成测试工具和服务一览

    本文建议软件开发人员将评估集成于测试及某些现有工具,同时了解特定工具如何工作及能做什么。

  • 代码审查是如何抹杀开发者积极性的?

    代码审查本应该是相互合作/学习,整合团体动力,而大多数人则认为,他们看到的是它需要花掉一些人的一些额外的时间,那些本应该用来继续做开发的时间。

  • 集成测试所面临的挑战

    集成测试已经与我们并肩作战多年,但是它仍旧有点像虚空领域。一项服务如何同另一项服务交互,还有一项服务如何同软件栈中更深层的底层对象和功能进行交互依然是个谜。

技术手册>更多

  • OSGi模块化技术手册

    最近有一些争论,主要是关于是否完全成熟的OSGi模块化是严格意义上必须的东西,或者Jigsaw是否一种足够好的“更简单”的方法。但是也许关键点在于对于任何既定的组件在哪里适合什么模块化。OSGi是Java领域里无可辩驳的最成熟的模块系统,它与Java几乎是如影相随。在这本技术手册中我们将分三部分来和大家聊聊OSGi模块化以及它和Java千丝万缕的关系。

  • SOA实现与交付指南

    随着SOA渐成IT潮流, 越来越多的SOA项目启动了。有些项目彻底失败了,有些项目则勉强成功了。为什么有些项目成功了,有些去失败了,最大的问题出在哪里?如何吸取这些失败项目的教训,并形成自己规划SOA路线图所需的远见与策略。同样的,我们又要如何判断SOA项目是否已经成功实现?这些将是未来SOA项目成功实现的关键。下面让我们来看看个中因由。

  • API样式及云计算API选择教程

    据Gartner的副总裁兼应用架构、集成与开发分析师Daniel Sholler介绍当今主流软件的变革是围绕着应用程序接口进行的。这些“集成接口”的性质正在发生微妙的改变。API设计正变得与用户界面设计一样的重要。REST架构的普遍性使得它可以在各种广泛的场合下工作,且其流行性也已经在一大群程序员当中得到了证实。在这本技术手册中我们将着重看一下API公共数据选择、公开API,以及REST和SOAP的选择,同时也将涵盖云计算API的内容。

  • 银行SOA应用案例简报

    本世纪初,全球金融崩溃后,曾听到花旗银行企业架构部高级VP讲假如他或者其他金融巨头的IT系统架构师能够最终在企业内推行SOA的话,这场金融危机将不会发生。因为SOA的应用能够很容易地对即将发生的金融风险进行预警。但可惜的是,企业的各个部门并不愿意在应用SOA方面花费太多的精力。时过境迁,现在面对全球经济的快速发展,很多银行已经开始了SOA之行并从中开始获益,下面我们就来看看这些内容。

TechTarget

最新资源
  • 安全
  • 存储
  • CIO
  • 数据库
  • 服务器
  • 云计算