用自定义代码分析来标准开发人员的开发规范
代码分析(关于代码分析详见http://msdn.microsoft.com/zh-cn/library/3z0aeatx(VS.80).aspx),是visual studio开发工具中提供的一种规范代码的工具,系统提供了200多条规则,从命名习惯,安全性,属性使用等方面来对我们编写的代码进行分析,然后以默认警告的形式在“错误列表”窗口中提示我们书写的代码是否符合规范,并提示出为什么。当然这种规范是MS给的一种通用的规范,不一定适合所有的公司。
在项目中添加一个类文件NameRuleCodeAnalysisRules(为了方便,我们把方法验证和字段验证都放到一个类中)
using Microsoft.FxCop.Sdk;
namespace NameRuleCodeAnalysisRules
{
/// <summary>
/// 验证方法类
/// </summary>
public class ServiceSoftNameRuleMethod : BaseIntrospectionRule
{
public ServiceSoftNameRuleMethod()
: base("ServiceSoftNameRuleMethod", "NameRuleCodeAnalysisRules.Rules", typeof(ServiceSoftNameRuleMethod).Assembly)
{ }
/// <summary>
/// 验证方法首字母
/// </summary>
/// <param name="member">类型成员</param>
/// <returns></returns>
public override ProblemCollection Check(Member member)
{
Method method = member as Method;
if (method == null)
{
return null;
}
else
{
if (!method.IsSpecialName && !Char.IsUpper(method.Name.Name, 0))
{
Problems.Add(new Problem(GetResolution(member.Name.Name)));
}
}
return Problems;
}
}
/// <summary>
/// 验证字段类
/// </summary>
public class ServiceSoftNameRuleField : BaseIntrospectionRule
{
public ServiceSoftNameRuleField()
: base("ServiceSoftNameRuleField", "NameRuleCodeAnalysisRules.Rules", typeof(ServiceSoftNameRuleField).Assembly)
{ }
/// <summary>
/// 验证字段访问修饰符
/// </summary>
/// <param name="member">类型成员</param>
/// <returns></returns>
public override ProblemCollection Check(Member member)
{
if (member.DeclaringType is EnumNode)
{
return null;
}
Field field = member as Field;
if (field == null)
{
return null;
}
else
{
if (field.IsPublic)
{
Problems.Add(new Problem(GetResolution(member.Name.Name)));
}
return Problems;
}
}
}
}
<Rules FriendlyName="ServiceSoft公司命名规范">
<Rule TypeName="ServiceSoftNameRuleMethod" Category="ServiceSoft.NameRule" CheckId="SS0001">
<Name>方法名规则</Name>
<Description>方法名必须首字母大写,如果首字符小写将提示警告。</Description>
<Url/>
<Resolution>方法 “{0} ”的首字母应为大写</Resolution>
<MessageLevel Certainty="99">Error</MessageLevel>
<Email>axzxs2001@163.com</Email>
<FixCategories>NonBreaking, DependsOnFix</FixCategories>
<Owner>ServiceSoft</Owner>
</Rule>
<Rule TypeName="ServiceSoftNameRuleField" Category="ServiceSoft.NameRule" CheckId="SS0002">
<Name>字段名规则</Name>
<Description>字段的访问修饰符不能是公有的。</Description>
<Url/>
<Resolution>字段 “{0} ”的访问修饰符是public</Resolution>
<MessageLevel Certainty="99">Error</MessageLevel>
<Email>axzxs2001@163.com</Email>
<FixCategories>NonBreaking, DependsOnFix</FixCategories>
<Owner>ServiceSoft</Owner>
</Rule>
</Rules>
代码如下:
namespace ConsoleApplication1
{
class Program
{
public int i = 10;
static void Main(string[] args)
{
}
public void ff()
{
}
static void _gsw()
{
}
public int Sx
{ get; set; }
}
class abc
{
public string k="12";
public abc()
{ }
}
abstract class bcd
{
public abstract int ffs();
}
}
用自定义代码分析来标准开发人员的开发规范相关推荐
- 易开发是一款帮助开发人员快速开发的工具,功能包括界面分析,页面信息,加固脱壳,支持 Android9.0
DeveloperHelper 项目地址:WrBug/DeveloperHelper 简介:?易开发是一款帮助开发人员快速开发的工具,功能包括界面分析,页面信息,加固脱壳,支持 Android9.0 ...
- 测试开发人员与开发人员_如何升级为开发人员
测试开发人员与开发人员 by Will Hughes 威尔休斯(Will Hughes) 如何升级为开发人员 (How to Level up as a Developer) Being a prod ...
- 开发人员项目开发的步骤
开发人员项目开发的步骤 前言 项目开发目的分析与确定 在开发商将开发项目确定下来之后,需要与需求方进行讨论,确定需求方对于软件开发需要实现的目标及其具体需要的功能等等,并进行可⾏性分析(技术.成本.法 ...
- 开发工程师人生之路-与30岁左右的开发人员共勉开发工程师人生之路(转载)
摘自: http://www.cnblogs.com/justinw/archive/2006/01/26/323554.html 恭喜,你选择开发工程师做为自已的职业 悲哀,你选择开 ...
- 开发人员提高开发效率的10个推荐工具
推荐10个能够提高开发人员开发效率的10个工具 腾讯云开发CloudBase 云开发(Tencent CloudBase,TCB): Cloud Base是腾讯云提供的云原生一体化开发环境和工具平台, ...
- web开发环境_Web开发人员的开发环境
web开发环境 With all the tools and programs available, it can be challenging to figure out the best way ...
- Java基础学习总结(146)——开发人员日志实践规范
一.日志规范 日志作用: 1.日常排查问题(基本作用),快速定位问题的根源 2.分析日志,构建常见问题排查平台 3.报表输出(日活.周活) 4.追踪程序执行的过程,追踪数据的变化: a)在系统启动或 ...
- bintray_与Bintray更好的开发人员对开发人员的协作
bintray 最近,我对Spring Social产生了兴趣,并且作为我学习道路的一部分,我试图集成仍在孵化器模式下的Github模块 . 不幸的是,这个模块似乎被抛在了后面,并且它对核心模块的依赖 ...
- 低代码平台和专业开发人员——完美搭档?
使用前端和后端框架从头开始开发企业级 Web 应用程序需要很长时间.如今,客户正在寻找快速且具有成本效益的解决方案,并倾向于使用无代码和低代码应用程序开发平台. 使用前端和后端框架从头开始开发企业级 ...
最新文章
- 你一定需要知道的高阶JAVA枚举特性!
- A Famous Music Composer
- 也是一个国外的final cut pro的模版网站
- 如何把数据在A表空间里面,把它IMP进B表空间
- 玩! 框架:为什么我会爱上它
- 51CTO会员开通成功!开森!
- 【转】【MySql】Waiting for table metadata lock原因分析
- 2021年7月国产数据库排行榜:openGauss成绩依旧亮眼,Kingbase向Top 10发起冲刺
- [Luogu 1312] noip11 Mayan游戏
- [转]摧毁一个人可以有多简单
- [Python] L1-041 寻找250-PAT团体程序设计天梯赛GPLT
- Delphi 调试连接 任意Android手机/平板/盒子
- Python基础之赋值运算符
- RTSP-传送ACC音频文件
- Easypoi模版形式导出excel导出图片
- 群晖用php装aria2,群晖Synology安装Aria2实现迅雷离线下载,安装IPKG
- FPA色彩性格测试题:黄 红 蓝 绿 你是哪个?
- c new java_“邻避设施”的种类主要包括()。
- 推荐一个免费服务器网站|亲测可用
- 按照分类方法判断图片里是否有鹅蛋
热门文章
- 中国工程院谭建荣:人工智能应用得再好,最核心的算法不行,创新能力就不行丨MEET2021...
- iPhone12要来了,苹果第一款5G手机,哪些值得期待?
- 威马新车型,率先放话搭载L4自动驾驶
- Zoom市值达586亿美元,放中国科技巨头能排第6!净利润暴涨135倍,每天3亿人开会...
- 不用写代码就能做高端科学计算,Mathematica推出“人话”版软件
- 百度Q2扭亏为盈,市值一夜大涨300亿,李彦宏:呼唤猛将雄兵,要再上行业之巅...
- 中国博士生提出最先进AI训练优化器,收敛快精度高,网友亲测:Adam可以退休了...
- 马斯克一作!Neuralink脑机接口细节公布,特殊材料防大脑损伤,专用芯片助技术落地...
- Drupal7 将到2021年11月结束支持,请注意升级
- 织梦首页常用调用标签