代码走查工具篇SytleCop与FxCop的引入

来源:互联网 发布:古代人有多可怕 知乎 编辑:程序博客网 时间:2024/05/20 00:17

      写相关敏捷开发的博客还要追溯到2012年年初的时候了,上篇博客为: 敏捷开发,持续集成 fxcop 在 CruiseControl.NET中的使用

     项目型团队项目多、时间短、任务重等原因客观存在,造成了项目只看重进度,不看重质量。拿代码走查这一项来说,切身体会,这是一项比较耗时,但是效果很好的走查方式,即使是周末加个小班,自己也是喜欢去做一做这个工作的。对项目、对公司负责是官话,对写代码的小孩们来说这个走查的过程也是对他们自身成长一个很大的推动剂。

      但是基于团队现状,走查力度不够,一方面是大家对代码走查不够重视,再有就是时间上不允许,因此计划着采取“工具”+“对等走查”+“抽查”的形式开展代码走查的工作。工具基本选定是StyleCop与FxCop两款,作为这个系列的开篇,先从互联网上摘了一段两者的介绍、差异、定位的文字,如下:

      SourceAnalysis StyleCop)的终极目标是让所有人都能写出优雅和一致的代码,因此这些代码具有很高的可读性。 早就听说了微软内部的静态代码检查和代码强制格式美化工具 StyleCop , 2008-05-23微软在 MSDN Code Gallery 发布了 4.2 版本,并命名为 Microsoft Source Analysis for C# 。 SourceAnalysis StyleCop)不是代码格式化(代码美化)工具,而是代码规范检查工具(Code Review 工具),它不仅仅检查代码格式,而是编码规范,包括命名和注释等。 SourceAnalysis StyleCop)目的是帮助项目团队执行一系列常用的源代码格式规范,这些规范是关于如何开发布局规整,易读,易维护并且文档良好的优雅代码的(help teams enforce a common set of best practices for layout, readability, maintainability, and documentation of C# source code)。 SourceAnalysis StyleCop) 现在包含了 200 个左右的最佳实践规则(best practice rules),这些规则与 Visual Studio 2005 和 Visual Studio 2008 中默认的代码格式化规则是一致的。 SourceAnalysis StyleCop)可以作为 Visual studio 的插件运行,在VS中(我的是2012)对一个C#文件点击右键后的:  在VS执行后,执行效果如

     同时 SourceAnalysis StyleCop)也可以作为 MSBuild 任务(安装时有选项)通过命令行执行。 从我现在的了解,SourceAnalysis StyleCop)只是一个代码格式的检查工具,它会根据预定义的C#代码格式的最佳实践,对我们的源代码进行检查,并给出不符合编码风格的错误提示。这一点来说与微软的另一个代码检查工具 FxCop 很相似,但 FxCop 是对 dll compiled binaries) 进行检查,所以 FxCop 适用于新项目通过持续集成工具来使用的情况。也就是说 FxCop 是项目级别的,而 SourceAnalysis StyleCop)是代码级别的,更适合于程序员在编程过程中使用。 与 FxCop 的另一个不同是,SourceAnalysis StyleCop)不提供灵活的规则设置,而是使用所谓 one-size-fits-all 的方式强制人们用同样的习惯书写代码,因此 SourceAnalysis StyleCop)的终极目标是:The ultimate goal of Source Analysis is to allow you to produce elegant, consistent code that your team members and others who view your code will find highly readable. SourceAnalysis StyleCop)检查的规则包括: •  布局(Layout of elements, statements, expressions, and query clauses )  •  括号位置(Placement of curly brackets, parenthesis, square brackets, etc )  •  空格(Spacing around keywords and operator symbols )  •  行距(Line spacing )  •  参数位置(Placement of method parameters within method declarations or method calls )  •  元素标准排列(Standard ordering of elements within a class )  •  注释格式(Formatting of documentation within element headers and file

    近期个人已经完成了StyleCop与FxCop两个软件里Rules的收集与翻译工作,随后逐步的形成文章,分享给大家。希望工作中有相关经历的同行们多多提意见,谢谢。

   下篇地址:代码走查工具篇SytleCop的规则总结与翻译



原创粉丝点击