项目笔记---事半功倍之StyleCop(一)
前言
曾几何时,你是否在看别人代码的时候总是在抱怨代码没有注释,命名不规范,代码风格不统一,代码可读性差?是否有一个适合团队开发规范的检查工具?
答案就是大名鼎鼎的StyleCop代码检查插件,有了这个统一标准的代码工具,今后就不用抱怨代码风格不合理了,当然前提是你能推动(或者说“要求”)团队成员严格履行代码约束,否则一切仅是美好的憧憬。OK,废话不多说了,现在请跟我一起来体验吧。
一、StyleCop安装
下载并默认安装:
安装过程中,要关闭Visual Studio XXX,安装过程可能要2分钟。
二、启动VS并运行StyleCop
- 启动VS,打开一现有项目。
- 选择“工具” --- “Run StyleCop”。
- 查看“错误列表”(Error List)中的警告项,如图:
  
Wow, 好多的警告信息,看来作者的代码“太不规范了” :(
4. 按照提示消除警告信息,重复步骤2。如果能做到0警告你就完美了~~~
二、自定义StyleCop
默认设置的代码警告项非常多,而我们实际开发中又想过渡的严格而影响团队开发效率,那该如何是好呢?好在,StyleCop为我们提供了定制功能,只需简单的设置几步就可以完美的切合进我们现有的系统。
下面列举几个例子:
错误:SA1650:The element documentation for the element contains one or more spelling mistakes or unrecognized words. 简而言之,是注释中含有拼写错误。

我们习惯上懒惰的情况加是直接复制Class的名字(或者属性名)作为注释,这样字符串是连在一块的,SqlDataSource并不符合注释规范,默认StyleCop是不识别的,所以提示了SA1650错误,当然还有另一个情况是我们开发时候注释只中文的情况下支持的也不是很好,所以,我们暂且可以屏蔽掉这一提示。
这里有两种方式:
- 局部忽略错误:在错误提示上增加标签以忽略此项。其实就是在我们的SqlDataSource类上增加注释,这是官方文档中提供的方式。

- 全局忽略错误:右键项目---选择StyleCop Setting---Rules---Documentation Rules---Element Documentation---取消SA1650---点击OK


这样,我们就可以自定义每个项目的检查项,是否应用某些规则,以平衡我们自己的项目,这里只是抛砖引玉,以SA1650为例,更多项目请读者连接官方的Html文档查看,下一节会介绍如何快速查看Html文档。
二、快速查看官方文档
当我们遇到一对英文提示错误时,根本不理解其所云,也不知道如何更改才能符合“规则”,这里有一个快速的方法连接到某一错误的官方详细文档,当然,有道词典也是必不可少的:)
步骤:单击警告项---右键---点击显示错误信息


三、更多高级功能
这里列出官方给出的用户引用准则:
User Guide:
- A Brief History of C# Style
- Why Should We Use StyleCop?
- History of StyleCop
- Managing StyleCop Project Settings
- Sharing StyleCop Settings Across Projects
- Setting Up StyleCop MSBuild Integration
- Running StyleCop in VS2005 or VS Express
- Using File Lists
- Using StyleCop on Legacy Projects
- Rule Suppressions
- Property Headers
- List of StyleCop R# fixes
- Registry Settings for Auto-update checks
- Enabling Tracing to Investigate Performance Issues
- Downloading older version of StyleCop
- Running analysis on a mapped network drive
官方文档链接: http://stylecop.codeplex.com/documentation
项目笔记---事半功倍之StyleCop(一)的更多相关文章
- 项目笔记---事半功倍之GhostDoc(二)
		前言 前一篇文章<项目笔记---事半功倍之StyleCop(一)>提到如何约束代码,规范代码风格,这一节,我们将了解如何快速生成符合规则的代码注释---GhostDoc 一.安装Ghost ... 
- 事半功倍之StyleCop(一)
		事半功倍之StyleCop(一) 前言 曾几何时,你是否在看别人代码的时候总是在抱怨代码没有注释,命名不规范,代码风格不统一,代码可读性差?是否有一个适合团队开发规范的检查工具? 答案就是大名鼎鼎的S ... 
- 《BI项目笔记》——微软BI项目笔记连载
		本系列文章主要是结合实际项目,加上自己的总结,整理出来的一系列项目笔记,涉及微软SQL Server2008中商务智能开发中的SSAS.SSIS模块: 准备工作: <BI项目笔记>基于雪 ... 
- 项目笔记---CSharp图片处理
		原文:项目笔记---CSharp图片处理 项目笔记---CSharp图片处理 最近由于项目上需要对图片进行二值化处理,就学习了相关的图片处理上的知识,从开始的二值化的意义到动态阀值检测二值化等等,并用 ... 
- Django商城项目笔记No.12用户部分-QQ登录2获取QQ用户openid
		Django商城项目笔记No.12用户部分-QQ登录2获取QQ用户openid 上一步获取QQ登录网址之后,测试登录之后本该跳转到这个界面 但是报错了: 新建oauth_callback.html & ... 
- Django商城项目笔记No.11用户部分-QQ登录1获取QQ登录网址
		Django商城项目笔记No.11用户部分-QQ登录 QQ登录,亦即我们所说的第三方登录,是指用户可以不在本项目中输入密码,而直接通过第三方的验证,成功登录本项目. 若想实现QQ登录,需要成为QQ互联 ... 
- Django商城项目笔记No.10用户部分-登录接口
		Django商城项目笔记No.10用户部分-登录接口 添加url路由 接下来第二步,增加返回内容: 增加结果如下: 配置:上边的方法定义了返回的内容都有哪些,那这个方法jwt还不知道,需要配置: 修改 ... 
- Django商城项目笔记No.9用户部分-注册接口签发JWTtoken
		Django商城项目笔记No.9用户部分-注册接口签发JWTtoken 我们在验证完用户的身份后(检验用户名和密码),需要向用户签发JWT,在需要用到用户身份信息的时候,还需核验用户的JWT. 关于签 ... 
- Django商城项目笔记No.8用户部分-注册接口实现
		Django商城项目笔记No.8用户部分-注册接口实现 users的view.py中增加如下代码 class RegisterUserView(CreateAPIView): "" ... 
随机推荐
- dreamwave基础
			WEBcs架构需要在客户段安装程序, 需要安装程序, 工作量会比较大, 需要安装和维护, 比如以后系统升级, 会很麻烦. 优点是一些业务逻辑可以在客户端, 可以减少服务器的一些压力, 客户端的界面操作 ... 
- 百度BAE的一些使用心得
			休眠会释放单元资源停止收费,那就不用被百度收费了 
- 使用生活实例理解Asp.net运行时
			学习编程语言,掌握面向对象的编程思想尤为重要,一旦理解了面向对象的这种概念,那么好些地方拿到生活中去理解,就容易的多了.书本上的枯燥干涩的语言,对于好多人来说,即难懂,更难长时间牢牢记得.但是编程语言 ... 
- c++中Socket编程(入门)
			转载 :http://www.cnblogs.com/L-hq815/archive/2012/07/09/2583043.html 但该作者也是转载,国外网站翻译之作 本人在学习Socket编程时, ... 
- [leetcode]721. Accounts Merge账户合并
			Given a list accounts, each element accounts[i] is a list of strings, where the first element accoun ... 
- [leetcode]158. Read N Characters Given Read4 II - Call multiple times 用Read4读取N个字符2 - 调用多次
			The API: int read4(char *buf) reads 4 characters at a time from a file. The return value is the actu ... 
- Scrum 项目3.0--软件工程
			1. 确保product backlog井然有序.(参考示例图1) (例图1) 2.把故事进一步拆分成任务.(参考示例图2) (例图2) 3. 形成Sprint backlog. Scrum mast ... 
- 7.25  js 自定义方法  a.b
			调用: $(function(){ Starinput.initiate({name:'qr1_z.startlevel',tar: $("#sitelogo1"), stars: ... 
- /etc/inittab加入自动启动格式
			R01:35:respawn:/usr/bin/exe_program 说明 R01:标识,每一行必须唯一(R01并无特殊含义,可自定义). 35:有效模式,3字符界面启动,5图形界面启动 respa ... 
- MYSQL 问题小总结
			mysql 问题小总结 1.MySQL远程连接ERROR 2003(HY000):Can't connect to MySQL server on ‘ip’(111)的问题 通常是mysql配置文件中 ... 
