美文网首页
阿里巴巴java开发者手册整理(一)

阿里巴巴java开发者手册整理(一)

作者: 卫渐行 | 来源:发表于2017-10-18 19:19 被阅读17次
    • 编程规约
      1. 命名风格:驼峰命名
      2. POJO类中布尔类型的变量,都不要加is,否则部分框架解析会引起序列化错误;
        1. 例如: 定义基本类型为Boolean isDeleted ;
      3. 包名一律小写;统一使用单数的方式;类名一律大写,可以含有复数的表示方式;
      4. 尽量使用英文自定义编程元素,表达清楚model,service,dao层;如果模块,接口,类,方法使用了设计模式,在命名的时候要体现出来
        1. 从远程拉取代码的类:PullCodeFromRemoteRepository
        2. OrderFactory;LoginProxy;
      5. 接口定义的时候,尽量不要加上修饰符;并加上Javadoc主是,尽量不要在接口中定义变量;
        1. 接口方法 :Void f()
        2. 接口基础敞亮:String Company = “wenwei”
        3. JDK 8种允许又默认的实现,那么这个default方法,这个default ,是所有实现该接口最有价值的实现;
      6. 接口与类的命名规则:
        1. 接口:保证接口实现的类命名与接口命名一致
        2. 枚举类型加上Enum,枚举类型是特殊的常量类型,构造方法默认强制私有,成员名称:SUCCESS
        3. service/DAO层方法命名
          1. get:获取某个对象的方法的前缀
          2. list: 获取到对象list的方法的前缀
          3. update/modify:修改方法的前缀
          4. Count 统计对象的值的前缀
          5. insert/save;插入一个对象方法的前缀
    • 常量的定义
      1. 不允许有特殊字符出现在常量中
      2. Long或者long初始化的时候,需要增加L;不能小写l;
      3. 常量类需要按照功能放在不同的常量类中;
      4. 如果变量类在一个范围内变化,且带有名称之外的衍生意义,需要增加枚举类型
      5. PushJobToJiraFailed("任务单推送不成功","任务单ID = {0}");

    private String subject;
    private String msg;

    public String getSubject() {
    return subject;
    }

    public String getMsg() {
    return msg;
    }

    EmailSubAndMsgEnum(String subject, String msg) {
    this.subject = subject;
    this.msg = msg;
    }

    • 代码格式
      1. 采用4个空格缩进,禁止使用tab字符;
      2. 任何两目和三目运算符,左右两边都需要加一个空格
      3. // 和注释内容之间,有且仅有一个空格;
      4. 单行代码的字符限制为120,超出部分需要换行;换行的策略
        1. 第二行比第二行缩进4个空格,第三行不在缩进
        2. 运算符(方法调用点符号.)和下文一起缩进;
        3. 多个参数之间的逗号;逗号不能与下文一下缩进;
        4. 括号前不换行;
      5. IDE的text file encoding 设置为UTF-8;IDE中文件的换行符都为unix的格式(LF)(CR)
    • OOP规约
      1. 避免类的对象访问类中的静态常量或者静态方法;
      2. object的equal方法容易抛空指针异常,应使用常量来调用equal;
        1. “test”.equal(object) 采用
        2. 不采用object.equal(“test”)
      3. 关于基本类型与包装类型的使用标准如下:
        1. 强制所有的POJO的基本类型都为包装的基本类型
        2. 局部变量用基本类型
        3. RPC方法的返回值和参数必须使用包装数据类型
          1. 数据库查询为null,因为需要自动拆箱,用基本类型可能有NPE的风险
          2. 在远程调用的RPC,返回的值为null;返回
      4. POJO类中必须写toString,便于排查问题;
      5. DO/DTO/VO等POJO对象,不要设定任何默认的属性址
      6. 构造方法禁止加入任何业务逻辑,如果有初始化逻辑,请放在init中;
      7. 序列类属性,请不要手动修改serialVersionUID 字段,避免反序列失败;如果反序列失败,重新生成serialVersionUID;
      8. 使用索引访问用String的split方法的得到的数组,需要对最后一个字符有无内容做检查,否则会抛异常
      9. 类内方法定义顺序依次为;公有(保护)方法>私有方法>getter/setter
      10. Setter/getter不需要增加任何业务逻辑,
      11. 循环体内使用StringBuffer而不要使用String,避免内存资源的浪费;
      12. 类成员与方法访问控制从严;
        1. 如果不允许外部直接使用,则通过new来创建对象,那么构造函数必须为private
        2. 工具类不允许有public或default构造方法。
        3. 类非static成员变量并且与子类共享,必须 用protected
        4. Static,成员考虑用final
        5. 类成员方法内部防范用private,继承使用,用protected

    参考地址:https://github.com/vipshop/vjtools/blob/master/docs/standard/chapter12.md

    相关文章

      网友评论

          本文标题:阿里巴巴java开发者手册整理(一)

          本文链接:https://www.haomeiwen.com/subject/joieuxtx.html