源代码检验执行统一标准

ZDNet软件频道 时间:2005-12-06 作者:Tony Patton |  我要评论()
本文关键词:行业标准代码 原始代码编辑 源代码 developtrend
代码检验是软件开发周期的一个重要过程。它可减少开发时间,并可提供更为高效和稳定的满足标准的代码。
开发一个应用程序,可以用多种方法实现,虽然这为开发人员提供了创造性的灵感,但却无法让所有开发人员同时最大限度地发挥他们的创造力。很多公司在代码标准方面都采用最佳的实践方法和决策,目的是促成一种特定的开发标准。其中一种方式就是通过经常性的代码检验来执行这些标准。本文将讲述到代码检验过程,并列举一些可用于代码检验和.NET Framework的实用工具。


何谓代码检验(Code Review)?

一般而言,开发人员都是属于“吹毛求疵”一族,但类似于极限编程(Extreme Programmin,简称XP)里的方法论提到:团队合作才是项目成功的关键。代码检验就是团队合作的一个组成部分,它能够促使团队的成员去查看其它成员的代码。代码检验的优越性体现在:
在软件开发周期之内尽早地发现更多的错误。
能够提高缺乏经验的开发者的学习机会。
有助于开发人员避免一些常见的错误。
促进团队中良好的交流。
可开发出易维护的代码。

代码检验的优势显而易见,然而真正实施却非常困难。与普通人一样,开发人员一般都不喜欢听到批评的声音。虽然它能够在开发周期中尽早发现错误而减少了后期的工作量,但是代码检验通常被看作一件额外的工作。

设置与遵循开发标准
倘若公司内已经建立开发标准,那么代码检验的实施就会相对容易。开发标准规定开发人员编写代码的规范,但是有时候这些开发标准会限制开发人员使用自己喜欢的风格。
建立开发标准的好处是,能够让后来的开发人员遵循标准而容易上手。同样,在代码检验过程中,有助于开发人员将代码标准作为最合理的参考。除此之外,公司也可以很快纠正错误代码,保证代码的一致性。

实施代码检验
根据开发团队的规模,实施代码检验的方法有很多种。代码检验的基本方法是开发人员相互检验对方的代码。这一方法由于方便而得到广泛应用,却会导致代码上的不协调。另一方法为一组代码的检验,即整个团队查看同一组代码,这一方法有助于团队的代码形成整体性,但真正实施则需要花费很多时间。

代码检验的一个关键之处是开发人员可以在最短时间内纠正错误。因为越早地发现错误,就会更容易地修改错误。同时,开发人员更加熟悉当前他们编写出来的代码。

在代码检验过程中,开发人员查看一个已经完成的代码单元,这相比在一个庞大代码范围内查找问题要容易很多。

另一种方法是自动化代码检验。当前已经推出多种开发工具可供开发人员查看他们编写的代码。在错误产生的时候,这种检验自动化地“报警”,由此在代码完成之前指出错误之处。这种方法可以达到:代码直接写成标准,而不是修改成标准。

自动化检验在查看过程中可以消除开发人员的自负和个人主义,使得代码更为合乎所有开发人员的要求。而且,自动化检验有助于公司新员工把握自己的开发技术,从而避免由于简单问题被其它开发人员指出的尴尬局面。

代码检验工具
当前,很多实用的工具可使代码检验处理过程变得相当容易。其中有些工具能够自动化处理整个过程,而有些工具则起到推动和帮助的作用。以下列举了一些可使用到的工具:

CodeReviewer 是一款高度集成的代码检验系统,它使得代码检验过程如同好朋友一样细致地查看代码。

Codestriker 为支持在线代码检验的开源Web程序,它支持不同种类的开源管理产品,并将所有检验工作存储在一个后台数据库。

MZ-Tools 包括很多Visual Studio .NET附加软件,用于编写、设计、文档化、以及检验代码。

Aivosto Tools 提供了一套用于代码优化和标准执行的工具。

Code Analyzer 可方便检测代码以兼容于标准规范和最合理的实践。

DevPartner 与Visual Studio相集成,能够让你如同使用标准规范一样权衡软件性能。

此外,还有一些工具可帮助代码检验过程:
• FxCop 为一款由微软提供的分析工具。这一工具能够确保代码符合.NET Framework设计规范,它包含很多可扩展的不同规则。
• PrettyCode.Print 提供代码检验的可读性输出报告,由此可方便开发人员离线操作。
• WinDiff 为一款用于比较文件并图形化显示结果的工具。
• WinMerge 为一种开源可视化的Windows文本文件区别和合并的工具。

以上列举的工具虽然不是很全面,但它们都提供了代码检验功能。

代码检验将有助于团队开发
代码检验是软件开发周期的一个重要过程。它可减少开发时间,并可提供更为高效和稳定的满足标准的代码。


百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134