使用StyleCop进行代码审查
使用StyleCop进行代码审查
工欲善其事,必先利其器,上篇简单介绍了怎样使用Astyle进行代码格式化,使编写的代码具有一致的风格。今天简单介绍下怎样使用StyleCop对原代码进行审查,看编写的代码是否遵循设计规范、.Net约定和一些贯用法等。保证代码的一致性,可读性等等。
在此之前,先简单介绍下FxCop(起初只是微软内部使用的工具),一个分析托管程序集,检测代码的总体正确性的工具,告诉用户哪些地方不符合设计规范。他使用的评估规则已经发展了多年,凝聚了顶尖.Net框架开发人员的知识和技术。但是FxCop是基于托管代码分析的,即编译后的程序集。今天我们介绍的StyleCop同样是用来检查代码是否符合设计规范的,它是基于原代码验证的,仅支持C#语言,就是在开发期间进行代码验证的工具,相信在日常开发中,会帮助到大家,在使用工具的同时,逐渐改善和提高大家的编码规范和意识,另外,相关内容推荐大家读下《.Net设计规范-.Net约定、贯用法与模式》这本书。好了,入题:
首先,还是先下载最新版的StyleCop.
下载地址:http://stylecop.codeplex.com/
当前最新版本是StyleCop-4.7.37.0.msi,版本4.7,下载完成后,开始安装,安装过程非常简单,这里就不上图了。安装完成后,好像没什么反应,在开始菜单也不会出现相关菜单。没关系,现在打开Visual Studio,我以Visual Studio2010为例,见下图:
在项目菜单上会出现StyleCop相关菜单。
点击“Run StyleCop”,呵,警告一大堆,见下图:
StyleCop已经把不符合规范的相关警告全部列出,并且已经定位到行和列,双击任一条项目即可定位到问题点。
也可以基于单个文件进行检查,只要在当前代码页右键点击“Run StyleCop”即可,见下图:
其中检验的规则可在项目名称的右键菜单“StyleCop Settings”中设定,见下图,使用中发现对中文支持的不是很好。其中一些不适用的校验规则可以不勾选即可。
下面主要对一些常见的警告简单说明:
SA1633 : CSharp.Documentation : The file has no header, the header Xml is invalid, or the header is not located at the top of the file.
代码不包含文件头说明,格式如下。
//-----------------------------------------------------------------------
// <copyright file="Widget.cs" company="Sprocket Enterprises">
// Copyright (c) Sprocket Enterprises. All rights reserved.
// </copyright>
// <author>John Doe</author>
//-----------------------------------------------------------------------
SA1507 : CSharp.Layout : The code must not contain multiple blank lines in a row.
代码部分存在多个空格
SA1600 : CSharp.Documentation : The method must have a documentation header.
方法必须要头部说明,只要在方法前键入3个斜杠,IDE自动会根据该方法生成相关头文档说明。
SA1400 : CSharp.Maintainability : The class must have an access modifier.
类必须要有一个访问修饰符,如:public、private等。
SA1513 : CSharp.Layout : Statements or elements wrapped in curly brackets must be followed by a blank line.
语句之间要有空行。
SA1202 : CSharp.Ordering : All private methods must be placed after all public methods.
私有方法要放在公有方法子后。
SA1650 : CSharp.Documentation : The documentation text within the summary tag contains incorrectly spelled words: 异常测试
这个是对中文支持的不够好。拼写检查识别不到。
其他还有常见的变量首字母小,常量首字母大写,等等常规检查,其它规则请参见StyleCop使用说明。
使用StyleCop进行代码审查的更多相关文章
- 使用AStyle进行代码格式化
转自:http://www.cnblogs.com/JerryTian/archive/2012/09/20/AStyle.html 在日常的编码当中,大家经常要遵照一些设计规范,如命名规则.代码格式 ...
- 解决Protobuf生成的C#代码命名不规范问题
起因 通常使用Protobuf的步骤为 定义 .proto 文件 使用 protoc 生成对应语言的代码 以生成C#代码为例,使用如下命令: protoc -I ../protos --csharp_ ...
- 代码审查工具StyleCop
“代码审查”或是“代码评审”(Code Review),这是一个流程,当开发人员写好代码后,需要让别人来review一下他的代码,这是一种有效发现BUG的方法.由此,我们可以审查代码的风格.逻辑.思路 ...
- 使用StyleCop.Analyzers进行代码审查
为什么要进行代码审核? 提早发现代码中的BUG,避免将BUG带到生产环境 极大的提高软件质量,以及可维护性 统一代码规范.提高可读性,减少新加入成员的熟悉时间 加速个人和团队的成长,知识和经验的积累 ...
- 代码审查工具 StyleCop 的探索
最近我们Advent Data Service (ADS) 在项目上需要按照代码规范进行代码的编写工作,以方便将来代码的阅读与维护. 但是人工检查起来容易遗漏或者格式不统一, ReSharper又是收 ...
- C#代码审查工具 StyleCop
SourceAnalysis (StyleCop)的终极目标是让所有人都能写出优雅和一致的代码,因此这些代码具有很高的可读性. SourceAnalysis (StyleCop)不是代码格式化(代码美 ...
- 用StyleCop规范团队代码
前言 编码风格,每个人都是有不同的特点,风格各异,而且一个人在不同的时期,编码风格的差异也可能是非常大的,好比学生时代,刚工作的时候,工作一段时间后等. 在一个团队中,或一个项目中,如果出现了N种风格 ...
- 使用stylelint对CSS/Sass做代码审查
对样式审查?很少人会这么做吧,但实际上开发者应该有这样的态度,尤其是不同团队多人开发时,这一点尤为重要. 在本文中,我将陈述两点:一是为什么我们需要对样式进行审查,二是如何将审查工具融合到整体的构建流 ...
- Android APK瘦身之Android Studio Lint (代码审查)
******** ******** 第一部分: 瘦身内容介绍 ******** ******** 项目新版本的迭代接近尾声, 因为历史累积问题, 导致有很多无效的资源让已经臃肿的APK变得更肿, 因此 ...
随机推荐
- 033医疗项目-模块三:药品供应商目录模块——供货商药品目录t添加查询功能----------Dao层和Service层和Action层和调试
什么叫做供货商药品目录t添加查询功能?就是说我们前面的博客里面不是说供货商登录后看到了自己供应的药品了么如下: 现在供货商想要往里面添加别的药品,那么这个药品的来源就是卫生局提供的那个Ypxx表(药品 ...
- 华为acl(traffic-filter)和dhcp管理
华为alc配置实例:-traffic-filter # 在VLAN100上配置基于ACL的报文过滤,允许源IP地址为192.168.0.2/32的报文通过,丢弃其他报文. <HUAWEI> ...
- linux不同角色server分区方案
服务器角色 分区建议 优点 RAID方案 单机服务器 如8G内存,300G硬盘 /boot 100-200M swap 16G,内存大小8G*2 / 80G /var 20G(也可 ...
- 架设ftp反向代理服务器
因网络环境限制,需要从内网(不能直接连通外网)向外部的ftp上传.下载文件,只能在网关服务器上架设ftp反向代理(网关服务器可同时连通外网与内网,但是不允许内部应用部署在这台机器上). 试了几个方案: ...
- VS2010+MVC4+Spring.NET2+NHibernate4-传统三层架构-前篇
VS2010+MVC4+Spring.NET2+NHibernate4 - 传统三层架构 - 前篇 一直追求使用开源项目,就因一个字:懒! 一直想整理一下的,却一直懒到现在!从当初用的MVC3到现在的 ...
- We Know What @You #Tag: Does the Dual Role Affect Hashtag Adoption-20160520
分析类的论文 1.Information publication:www2012 author: Mei qiao zhu 2.What 微博中的hashtag既可以表示谈论的内容,又可以代表一个群体 ...
- JavaScript学习笔记-简单的计时钟表
<!DOCTYPE html> <html lang="en" xmlns="http://www.w3.org/1999/xhtml"> ...
- poj 1698 Alice‘s Chance
poj 1698 Alice's Chance 题目地址: http://poj.org/problem?id=1698 题意: 演员Alice ,面对n场电影,每场电影拍摄持续w周,每周特定几天拍 ...
- Unix 复制文件至指定目录
cp /gaps/log/20160504/bxdx_20160504.log.Z /home 将/gaps/log/20160504/bxdx_20160504.log.Z 文件复制到home路 ...
- oracle job有定时执行的功能,可以在指定的时间点或每天的某个时间点自行执行任务。
来源于:http://www.cnblogs.com/wangfg/p/5110831.html 一.查询系统中的job,可以查询视图 --相关视图 select * from dba_jobs; s ...