zoukankan      html  css  js  c++  java
  • 编码规范和代码重构的一些建议

    首先推荐两个工具,一个是Resharper 一个是dotcover

    1. 代码应在注释较少的前提下能让别人读的懂,而不是只能让机器读的懂
    2. 如果自己都觉得自己写的代码丑,那么请您重构
    3. 尽可能的避免重复代码
    4. 必要的时候可以使用静态变量来保存查询出来的全局数据,建议将静态变量设置为只读的
    5. 区别对待静态变量和静态属性
    6. 静态属性中直接调用方法,不会带来性能的提升,而静态变量可以
    7. 谨慎使用可写的、非私有的静态变量或属性
    8. 代码的暴露程度尽可能的低(能用internal不用protected)
    9. 参数的数据类型尽可能的严格(比如能用int不用string)
    10. 局部变量的定义尽可能的和它的使用挨进,这样便于代码的重构
    11. 如果局域变量在使用之前参涉及到了代码逻辑中,应当它们重构为方法
    12. 如果代码中出现了嵌套的循环或条件判断,那么这段代码该重构了
    13. 建议使用using引入命名空间,而不是在声明对象的时候将命名空间写到声明里
    14. 移除未使用的using
    15. 重构时干掉多余的注释和注销掉的代码
    16. 无特殊情况建议一个方法最好不要超过30
    17. 必要的时候可以使用linq进行多个list的连结查询
    18. 尽量用List<T>来代替DataTable,这样在使用的过程中比较方便(通过点的方式可以直接访问属性),并且避免了过多的装箱、拆箱
    public class User
    {
        public string Id{get;set;}
        public string Name{get;set;}
    }
    
    
    写法一:
    void Main()
    {
        User u=default(User);
        List<User> users=new List<User>();
        for(var i=0;i<100000;i++)
        {
            u=new User{Id=i.ToString(),Name=string.Format("{0}a",i)};
            users.Add(u);
        }    
        
    }
    
    
    写法二:
    void Main()
    {    
        List<User> users=new List<User>();
        for(var i=0;i<100000;i++)
        {
            User u=new User{Id=i.ToString(),Name=string.Format("{0}a",i)};
            users.Add(u);
        }
        
        
    }
    
    
    可能很多人认为写法一的性能要高于写法二,其实不然,两种写法的IL代码是一样的,那么它们的性能必然一样

    如有不对之处,请拍砖,并指正,谢谢!

    待续

  • 相关阅读:
    菜根谭#245
    菜根谭#244
    菜根谭#243
    菜根谭#242
    菜根谭#241
    菜根谭#240
    菜根谭#239
    菜根谭#238
    菜根谭#237
    [转载]Linux 内核list_head 学习(一)
  • 原文地址:https://www.cnblogs.com/bygrace/p/3900356.html
Copyright © 2011-2022 走看看