为何要进行代码审核?git
StyleCop.Analyzers介绍
代码审查的方式有不少种,大致上分为人工审查和工具审查,这里咱们只说工具审查。github
StyleCop是微软的一款代码审查工具,使用它能够检查代码中的各种静态编程规范错误,从代码注释,代码布局,可维护性,命名规范,可读性等各方面对代码规范性进行检查。
重要的是,其规则能够自定义,能够屏蔽掉不适用于特定项目的规则,甚至能够自定义开发适用于各自项目的规则,它有3种使用方式:编程
因为技术缘由StyleCop对于新C#语法的解析愈来愈困难,所以StyleCop之后仅会进行稳定性维护功能上不会有重大升级。
若是你使用VS2015与C# 6及以上建议使用StyleCop.Analyzers,它是基于Roslyn编译平台重写的。json
使用StyleCop.Analyzers
本文以ASP.NET Core项目为例,其它项目大同小异。
使用StyleCop.Analyzers最简单的方式是添加NuGet包,您能够直接在VS里安装StyleCop.Analyzers 或 命令安装 Install-Package StyleCop.Analyzers工具
添加完成后您须要对它进行配置,配置文件有2个布局
下面看一个规则集文件的示例:ui
<?xml version="1.0" encoding="utf-8"?> <RuleSet Name="Rules for StyleCop.Analyzers" Description="Code analysis rules for StyleCop.Analyzers.csproj." ToolsVersion="14.0"> <Rules AnalyzerId="StyleCop.Analyzers" RuleNamespace="StyleCop.CSharp.NamingRules"> <Rule Id="SA1300" Action="Error" /> </Rules> </RuleSet>
其中SA1300表示规则ID,您能够在这里找到StyleCop.Analyzers内置的全部规则ID:https://github.com/DotNetAnalyzers/StyleCopAnalyzers/tree/master/documentation
Action="Error"表示知足此规则时让编译器产生错误,效果以下图:spa
Action能够取值:None | Error | Warning | Info | Hidden插件
规则集定义的详细信息请参见:https://msdn.microsoft.com/zh-cn/library/dd264996.aspx
代码规范
下面看一个stylecop.json文件的示例:
{ "$schema": "https://raw.githubusercontent.com/DotNetAnalyzers/StyleCopAnalyzers/master/StyleCop.Analyzers/StyleCop.Analyzers/Settings/stylecop.schema.json", "settings": { "documentationRules": { "documentInternalElements": false, "documentExposedElements": false } } }
其中documentInternalElements表示可见性为internal的接口或类等是否要求写注释,默认为true,咱们这里改成了false
具体详细信息请参见:https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/master/documentation/Configuration.md
接下来须要将规则集、stylecop.json文件与项目关联起来,在project.json文件的buildOptions中增长additionalArguments,例如:
"buildOptions": { "emitEntryPoint": true, "xmlDoc": true, "additionalArguments": [ "/ruleset:../../StyleCop/rules.ruleset", "/additionalfile:../../StyleCop/stylecop.json" ] }
若是内置规则没法知足您的需求您还能够自定义审查规则,而后在规则集里配置,这里先埋个坑下篇再具体讲。