当前位置: 首页 > news >正文

使用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使用说明。

 

转载于:https://www.cnblogs.com/JerryTian/archive/2012/09/22/2697703.html

相关文章:

  • wcf服务代理层添加wcf服务异步代理
  • 检测是否支持position:fixed
  • [译]学习IPython进行交互式计算和数据可视化(三)
  • 【PSY】 [歌詞] 父親
  • 一步一步学Remoting之三:复杂对象
  • linux下查看磁盘空间
  • Greenplum table 之 appendonly的列存储表
  • 云计算实验(二)Hadoop 练习
  • 云计算实验(三)CloudSim练习
  • 信息安全实验一:DES分组密码算法 2019.03.21
  • 信息安全实验二:分组密码工作模式 2019.04.15
  • 信息安全实验三:求模逆算法 2019.04.18
  • 信息安全实验四:RSA公钥加密算法 2019.04.28
  • 信息安全实验五:散列算法 2019.05.18
  • 信息安全实验六:RSA数字签名算法 2019.06.01
  • Centos6.8 使用rpm安装mysql5.7
  • Cookie 在前端中的实践
  • JAVA 学习IO流
  • js ES6 求数组的交集,并集,还有差集
  • miaov-React 最佳入门
  • Spark学习笔记之相关记录
  • Spring思维导图,让Spring不再难懂(mvc篇)
  • Transformer-XL: Unleashing the Potential of Attention Models
  • uva 10370 Above Average
  • Vim 折腾记
  • 翻译:Hystrix - How To Use
  • 关于 Linux 进程的 UID、EUID、GID 和 EGID
  • 基于Mobx的多页面小程序的全局共享状态管理实践
  • 技术攻略】php设计模式(一):简介及创建型模式
  • 力扣(LeetCode)56
  • 聊聊sentinel的DegradeSlot
  • 码农张的Bug人生 - 见面之礼
  • 前端技术周刊 2019-02-11 Serverless
  • 前端每日实战 2018 年 7 月份项目汇总(共 29 个项目)
  • 前端知识点整理(待续)
  • 如何使用Mybatis第三方插件--PageHelper实现分页操作
  • 设计模式 开闭原则
  • 智能合约Solidity教程-事件和日志(一)
  • 《TCP IP 详解卷1:协议》阅读笔记 - 第六章
  • 【云吞铺子】性能抖动剖析(二)
  • k8s使用glusterfs实现动态持久化存储
  • SAP CRM里Lead通过工作流自动创建Opportunity的原理讲解 ...
  • 国内开源镜像站点
  • # Swust 12th acm 邀请赛# [ E ] 01 String [题解]
  • ###STL(标准模板库)
  • #HarmonyOS:基础语法
  • #大学#套接字
  • #我与Java虚拟机的故事#连载03:面试过的百度,滴滴,快手都问了这些问题
  • (libusb) usb口自动刷新
  • (带教程)商业版SEO关键词按天计费系统:关键词排名优化、代理服务、手机自适应及搭建教程
  • (汇总)os模块以及shutil模块对文件的操作
  • (十二)python网络爬虫(理论+实战)——实战:使用BeautfulSoup解析baidu热搜新闻数据
  • (四)库存超卖案例实战——优化redis分布式锁
  • (五)IO流之ByteArrayInput/OutputStream
  • (一)kafka实战——kafka源码编译启动