教你如何快速捕获.NET代码中隐藏的BUG

  团队开发的一个方面就是在将所有的改动合并到中心资料库之前,允许单独的开发者在本地编写并构建(build)有特色的代码。开发者可以在本地测试与调试最新的版本,并且可以保证他们所有的工作代码可以与其他同事的协同工作,他们可以手动测试这些代码,但是更好的办法就是将这一过程自动化并且提供即时反馈,其中一个非常优秀的解决方案就是持续集成。

  持续集成

  对于应用软件开发团队而言,有很多提高产品质量和效率的思想,其中的一种思想就是被称作持续集成的方法,持续集成的一个前提就是即时反馈。持续集成的一种最简单的形式就是由一个开发者完成所有的工作,因为所有的改变都是立即可见的,因此,单个开发者在他们出现问题的时候就能知道这个问题的存在,当同样的方法应用到团队环境中,实时方式就会成为一个问题。

  持续集成最大的特色在于当开发者提交他们工作的时候 ,可以减少其他开发者用于检测bug的时间,而往往非常难以追踪到由这些bug所导致的问题的根源,因为问题通常是由于集成了新的代码所致,因集成而出现的bug可能在出现问题之前已经被嵌入到代码中很久了,与其花费时间去追踪这些bug还不如花在别的项目上,关键是要尽早地发现问题。

  在持续集成方法的帮助下,绝大部分bug可以在引入代码的时候被发现,因为这些“嫌疑犯”(开发者的代码)是在他们提交新代码之后才出现了错误,所以更加明显。因此,少花些时间在追踪这些错误上,开发者就能有更多的时间解决他们自己的问题,最终的结果是生产效率的提高,但这种方法也依赖于构建新版本的频率,从而向开发人员提供有价值的反馈。

  何时进行构建(build)?

  我还记得多年前曾工作过的项目,进行一次构建需要大量的时间和精力,要提醒开发人员递交他们的代码,而且手动的构建过程非常紧张,很自然的,当对开发团队的代码进行构建的时候,错误就摇头摆尾地出现了,追踪这些问题是需要时间的,并且希望能沿着正确的方向去解决问题,这样才能获得成功,而这一过程所需的时间往往导致了构建次数的减少,但是,多次构建更易于从持续集成中受益。

  如果您想知道一个成功构建的条件是什么,答案视乎您的项目和环境而决定,但是我经常将它定义为所有的源文件都成功编译、部署并且一系列测试都在系统中获得成功,您需要一系列工具来实现这些工作,虽然自动测试(automated testing)并不是必需的,但是我强烈推荐这种方法。

  工具

  以下是在.NET环境中建立与运行持续集成方法所必需的几本工具列表:

  ·源代码控制:这允许多个程序员通过提交、调出和添加新文件对应用软件代码的协同工作,Visual SourceSafe是一种流行的选择,但还有很多更好的选择,比如Subversion,IBM's Rational ClearCase,CVS和SourceGear Vault。

  ·编译器:您可以使用.NET框架的命令行编译器、Visual Studio .NET或其他的集成开发环境。

  ·持续集成服务器:这是构建过程的主要控制器,它负责监控为程序员提交代码使用的源代码资源库,当加入新的代码时,最新的版本将被取回,构建过程也就取消了,持续集成过程的最后一步是通过电子邮件、网页等形式向整个团队通报构建的状态。有很多工具都可以实现这一步骤,我比较喜欢CruiseControl.NET,另一个选择是免费的Draco.NET,您需要一个专门的服务器来实现这一步骤。

  ·自动构建工具:用于源代码的自动构建的工具是必不可少的,免费的NAnt是一个很棒的选择,或者您可以使用一个程序生成工具,如果您使用的是CruiseControl.NET的最新版本,则可以和Visual SourceSafe直接对话,这样就不需要像NAnt这样的自动构建工具了。

  ·选择性单元测试:在集成阶段应用单元测试可以帮助验证正常工作的代码,一个非常出色的工具是NUnit,它是免费的而且在网上有大量的相关信息。

  注意:安装与设置这些工具的内容已经超出了这篇文章的范围,但是每个产品的网络社区所提供的文档中包含了您使用这些产品所需的信息。

  您准备好使用持续集成了么?

  持续集成并不是针对缺陷代码的灵丹妙药,但它绝对可以释放出您宝贵的时间去应付更紧张的问题,开发人员依然需要编写强壮的代码并进行良好的单元测试,另外,代码应该按照规则进行提交(我建议每日提交),然而,使用持续集成可以帮助您验证代码、测试、设计等的质量,持续集成能帮助您节省出原本用于构建的时间,但您需要一些时间去设置和管理专门用于持续集成的服务器。

时间: 2024-10-30 16:07:30

教你如何快速捕获.NET代码中隐藏的BUG的相关文章

如何快速捕获.NET代码中隐藏的BUG

团队开发的一个方面就是在将所有的改动合并到中心资料库之前,允许单独的开发者在本地编写并构建(build)有特色的代码.开发者可以在本地测试与调试最新的版本,并且可以保证他们所有的工作代码可以与其他同事的协同工作,他们可以手动测试这些代码,但是更好的办法就是将这一过程自动化并且提供即时反馈,其中一个非常优秀的解决方案就是持续集成. 持续集成 对于应用软件开发团队而言,有很多提高产品质量和效率的思想,其中的一种思想就是被称作持续集成的方法,持续集成的一个前提就是即时反馈.持续集成的一种最简单的形式就

怎么获取页面代码中隐藏的部分

问题描述 url=http://product.dangdang.com/product.aspx?product_id=20939382&ref=product-0-M在浏览器中,输入上面的url,在这页面代码中,"编辑推荐"代码如下<divclass="itembook_edit"><spanid='detail_all'style="display:none"><aname="abstract

震网蠕虫中的一个Bug差点令其“出师未捷身先死”

本文讲的是震网蠕虫中的一个Bug差点令其"出师未捷身先死",由于内部代码中存在一个Bug,使其可以感染古老的Windows系统.超级蠕虫病毒震网(Stuxnet)差一点暴露,从而无法完成破坏. 业内众所周知,该病毒可以隐秘地破坏控制离心机的计算机系统.它由美国和以色列的神秘黑客所设计,被用于破坏位于伊朗那达兹郡的铀浓缩设施.该病毒导致伊朗的浓缩铀项目推迟了两年之久,但由于其自身的代码缺陷,震网差点未能发挥作用. 为了完成行动目标,Stuxnet必须保证自己无法被伊朗人检测到.不幸的是,

在C#代码中应用Log4Net(四)在Winform和Web中捕获全局异常

毕竟人不是神,谁写的程序都会有bug,有了bug不可怕,可怕的是出错了,你却不知道错误在哪里.所以我们需要将应用程序中抛出的所有异常都记录起来,不然出了错,找问题就能要了你的命.下面我们主要讨论的是如何捕捉全局的异常.基本上在winform或web中捕获全局异常的思路都是一样的,在全局的应用程序对象中添加异常捕获的代码,并写入日志文件中. 一.在Winform程序中捕获全局异常 在winfrom中我们需要了解Application对象中的两个事件 ①Application.ThreadExcep

ios-在我的代码中实现快速枚举

问题描述 在我的代码中实现快速枚举 hello大家好 需要在代码实现快速enumeration,不知道应该怎么做? int xx; int b=0; for (xx=0 ; xx<(distancearray.count); xx++) { if ([NSNull null]!=[distancearray objectAtIndex:xx]&& 0 !=[[[distancearray objectAtIndex:xx] description] intValue] ) { b++

java-优化-代码中的优化(1)

1.尽量使用final修饰符. 带有final修饰符的类是不可派生的.在JAVA核心API中,有许多应用final的例子,例如java.lang.String.为String类指定final防止了使用者覆盖length()方法.另外,如果一个类是final的,则该类所有方法都是final的.java编译器会寻找机会内联(inline)所有的final方法(这和具体的编译器实现有关).此举能够使性能平均提高50%. 2.尽量重用对象. 特别是String对象的使用中,出现字符串连接情况时应使用St

利用FindBugs减少代码中的bug数学习

FindBugs 作用 开发人员在开发了一部分代码后,可以使用FindBugs进行代码缺陷的检查.提高代码的质量,同时也可以减少测试人员给你报的bug数. 静态分析工具承诺无需开发人员费劲就能找出代码中已有的缺陷.当然,如果有多年的编写经验,就会知道这些承诺并不是一定能兑现. 代码缺陷分类 根据缺陷的性质,大致可以分为下列几类 ·Bad practice  不好的做法·Correctness   可能有不正确·Dodgy code     糟糕的代码·Experimental  实验·Inter

教你怎么样快速去查看Word版本

问:教你怎么样快速去查看Word版本? 答:单击"文件"菜单中的"版本"命令. Microsoft Word可以显示每个版本的保存日期和时间,每个版本保存人的姓名及简短备注.最新的版本显示在列表顶部. 若要查看某个版本的完整备注,请单击该版本,并单击"查看备注". 备注:保存文档的多个版本有两种方法: 一.关闭时自动保存版本 在"文件"菜单上,单击"版本". 选中"关闭时自动保存版本"复

C#实现把txt文本数据快速读取到excel中

  这篇文章主要介绍了C#实现把txt文本数据快速读取到excel中,本文直接给出示例代码,需要的朋友可以参考下 今天预实现一功能,将txt中的数据转到excel表中,做为matlab的数据源.搜集一些c#操作excel的程序.步骤如下: 下载一个Microsoft.Office.Interop.Excel.dll 在项目中引用. 编写代码如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 2