Alibaba开发手册学习(一) 命名风格

来源:互联网 发布:聚合数据 公司苏州 编辑:程序博客网 时间:2024/06/07 21:07

总结该博客的目的在于整理Alibaba开发手册中所讲述内容,加深对编码规范的理解,汲取经验,提高自己的代码水平,为以后的开发编写代码指定一个标准。建议去看官方PDF,本博客纯属笔记。

中心思想:码出高效,码出质量

  1. 命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束。
    【反例】 _name / __name / $Object / name_ / name$ / Object$

  2. 命名严禁使用拼音或与英文混合使用,使用正确的英文或国际通用的拼音
    【正例】: alibaba / taobao / youku / hangzhou 等国际通用的名称,可视同英文。
    【反例】: DaZhePromotion [ 打折 ] / getPingfenByName() [ 评分 ] / int 某变量 = 3

  3. 类名使用UpperCamelCase风格,必须遵从驼峰形式,特殊情况除外:DO BO VO等
    【正例】: MarcoPolo / UserDO / XmlService / TcpUdpDeal / TaPromotion

  4. 方法名、参数名、成员变量、局部变量都统一使用lowerCamelCase风格,必须遵从驼峰形式。
    【正例】: localValue / getHttpMessage() / inputUserId

  5. 常量命名全部大写,单词间用下划线隔开,力求语义表达完整清楚,不要嫌名字长。
    正例: MAX _ STOCK _ COUNT

  6. 抽象类命名使用 Abstract 或 Base 开头 ; 异常类命名使用 Exception 结尾 ; 测试类
    命名以它要测试的类的名称开始,以 Test 结尾

  7. POJO 类中布尔类型的变量,都不要加 is ,否则部分框架解析会引起序列化错误。
    【反例】:定义为基本数据类型 Boolean isDeleted; 的属性,它的方法也是 isDeleted() , RPC框架在反向解析的时候,“以为”对应的属性名称是 deleted ,导致属性获取不到,进而抛出异常。[问题]

  8. 包名统一使用小写,点分隔符之间有且仅有一个自然语义的英语单词。包名统一使用
    单数形式,但是类名如果有复数含义,类名可以使用复数形式。
    【正例】: 应用工具类包名为 com . alibaba . open . util 、类名为 MessageUtils( 此规则参考spring 的框架结构 )

  9. 杜绝完全不规范的缩写,避免望文不知义,尽量用完整的单词组合来表达其意。

  10. 接口类中的方法和属性不要加任何修饰符号 (public 也不要加 ) ,保持代码的简洁
    性,并加上有效的 Javadoc 注释

  11. 接口和实现类的命名
    【正例】对于 Service 和 DAO 类,基于 SOA 的理念,暴露出来的服务一定是接口,内部
    的实现类用 Impl 的后缀与接口区别

  12. 枚举类名建议带上 Enum 后缀,枚举成员名称需要全大写,单词间用下划线隔开
    【正例】:枚举名字为 ProcessStatusEnum 的 成员名称: SUCCESS / UNKOWN _ REASON

  13. Service/Dao层方法命名规约
    1 ) 获取单个对象的方法用 find/get 做前缀。
    2 ) 获取多个对象的方法用 select/query做前缀。
    3 ) 获取统计值的方法用 count 做前缀。
    4 ) 插入的方法用 save/insert 做前缀。
    5 ) 删除的方法用 remove/delete 做前缀。
    6 ) 修改的方法用 update 做前缀。

  14. 不允许任何魔法值 ( 即未经定义的常量 ) 直接出现在代码中
    【反例】:
    String key = ” Id # taobao _” + tradeId;
    cache . put(key , value);

  15. long 或者 Long 初始赋值时,使用大写的 L ,不能是小写的 l ,小写容易跟数字 1 混淆,造成误解。

原创粉丝点击