• 使用FxCop做代码检查和优化


    前段时间做了一个用到一个微软的免费测试工具FxCop,使用后觉得还不错,能进行一些代码方面的自动测试,同时有帮助学习编码规范和提高代码执行效率,从而提高代码的整体质量.

    这个工具能测试到的地方有: Design(设计),Globalization(全球化),Interoperability(互操作性), Naming(命名),Performance(性能规则),也可以自己加入规则进行测试;

    工具还是很好用的,很快就上手了
    有几点小技巧
    1 可以自定义错误的规则,建议取消掉globalizationrules,securityrules等规则

    2 点中问题的连接,后可以直接连接到有代码问题的代码上

    3 可以看看breaking的Info注释,里面有比较好的解决方法


    检查后修改的代码有

    1 Class的命名规则

    2 判断字符为空由
    if (strStartValue.ToString() == "")
    改为
    if(strStartValue.Length() == 0))


    3比较字符串的时候
    dr["PrefixM"].ToString().ToLower() == "mm" 改用String.Compare(strPrefix, "yy", true) == 0的方法

     
    4 删除掉方法中定义而未使用的参数
     
    5 删除无效的赋值

    5 DataReader中未关闭(其他程序中的)

    6 提示删除程序中未使用到的方法

    7 提示 catch 需要指定具体的Exception ,这样可以节约捕获Exception 时内存的使用

    8 刪除多余的using 引用

    遇到的问题有
    1 有大量的Globalization  要求,但是平时是没有注意到的,虽然开发的程序要求支持多语言
    strMonth = StartDateValue.Month.ToString();

    这样都会提示需要多语言的支持

    2 程序未有AssembliesShouldDeclareMinimumSecurity定义
    需要做签名,但是这个一般是平时没有注意的

    3 CLR编写的存储过程需要有out参数,但是也会提示出来,所以需要制定一套比较详细的规则

    4 在循环中有string相加的地方都提示要用stringbuilder这个修改是比较麻烦的,除非能之前注意,

    觉得比较好的资料可以参考
    http://www.cnblogs.com/zhengyun_ustc/archive/2005/08/09/FxCop001.html
    规则
    http://www.cnblogs.com/Hedonister/articles/231878.html
    FxCop的工具下载连接:
    http://www.gotdotnet.com/team/fxcop/

    定制FxCop规则示例:
    http://www.iocblog.net/static/2007/414.html

    FxCop添加规则如图

    作者:Angelo Lee
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.
  • 相关阅读:
    python之变量与常量
    Python之历史
    关于图像重采样插值算法
    常用的日期的方法
    数组常用的方法
    判断鼠标进入容器方向
    用JS实现一个时钟的效果
    搞定flex布局
    整理 45 道 CSS 基础面试题(附答案)
    CSS实战3
  • 原文地址:https://www.cnblogs.com/yefengmeander/p/2888014.html
Copyright © 2020-2023  润新知