DotLee

我们在dotnet开发里中文变量及方法的命名规则

我们在dotnet开发里中文变量及方法的命名规则

目前,我们在项目中使用中文变量,从3年前的权限管理,
到一年前的购物车管理,发展到了在类库(会员积分奖金规则)中使用。
体会到了中文变量对于项目维护的巨大方便。
现在,我们在枚举中基本使用中文。他的意义以及对我们的好处,
在上篇博文中有说明,请参考
http://www.cnblogs.com/DotLee/archive/2009/08/19/1549750.html


前提:开发团队以中文为主,开发文档以中文为主,
      系统的业务维护以中文为主,开发环境以中文为主。
      部署环境无关紧要,如果部署环境是非中文的,
      要提前在部署环境中测试。 建议,最好开发与部署环境相同。
      以便于提高项目的工作效率。
     

变量的命名规则:
   如: private float c1_购物车_非换购商品总额 = 0;
   形式:(英文或拼音)字母前缀+数字+下划线+字母前缀的中文名称+下划线+变量的名称;
            (英文cart)       c  1     _      购物车             _     非换购商品总额
        
         这里: 1表示类中的成员变量,    建议字母前缀用小写
                2表示类中的方法,       建议字母前缀用大写
                3表示方法中的局部变量; 建议字母前缀用小写
                枚举类型的没有数字
   如:   private void C2_购物车()
    {...}
   
    private void C2_购物车()
    {
        string c3_购物车编号 = WebUtils.GetShoppingCartId();
     } 
    
    
     public enum OrderStateEnum
    {
       os_订单状态_待处理订单=1,
       os_订单状态_已付款订单 = 2,
       os_订单状态_已收款订单 = 3,
       os_订单状态_已发货订单 = 4,
       os_订单状态_已收货订单 = 5,
       os_订单状态_已完成订单 = 6     
      
    }
   
   
    public bool PB2_积分奖金_加入积分奖金池(int orderid)
        {
           ...
           bool pb3_积分奖金_加入积分奖金池是否成功 = true;
            ...
            pb3_积分奖金_订单明细.UO_state = (int)b2cCityBLL.OrderStateEnum.os_订单状态_已完成订单;
            new b2cCityBLL.OrderBLL().UpdateOrder(pb1_积分奖金_订单明细 ); 
              ...
            return pb3_积分奖金_加入积分奖金池是否成功;
        }
     这里 pb表示PointsBonus积分奖金,我们对前缀的使用绝大多数使用英文。
     前缀的字符数一般不超过3个。 因为他们分布在不同的命名空间里,所以不会重复。
     而且,他们的规则以简单适用为最佳,来满足我们的90%的网站项目。其他的10%,
     一般而言,不是我们的主要所在。
    
     我们的70%的精力,是用在以后项目的维护上,而不是开发上。也就是以维护项目为主(70%),
     开发新项目为辅(30%),这样,我们的项目功能模块的复用率很高,相应的开发效率也就提高了。
    
    
    
 这样,通过前缀可以得到ide的智能提示功能,并且相关的变量会排序在一起;
 中文的名称要与业务员进行沟通,取得一致意见。
 
 缺点,主要是中文的输入还存在一定的问题,但对于整个项目的好处来说,可以忽略。   
        
这是我们3年多开发项目中使用中文变量的经验体会。证明他适用于我们,
所以我们在这些经验的基础之上,把对中文变量的使用,逐步的扩大范围。
我们的开发流程,主要以msf为主,这对于我们来说,也是我们目前的最佳的实践吧。
 

posted on 2009-09-19 16:13  DotLee  阅读(2070)  评论(22)    收藏  举报