美文网首页
阿里开发规约摘要

阿里开发规约摘要

作者: 逗逼程序员 | 来源:发表于2020-04-27 21:30 被阅读0次

    背景

    本文为 学习阿里开发规约的一些简单摘要,不是全部额,只是作为一种学习笔记的存在。

    1、不要使用一个常量维护所有的常量,要按照常量功能分类,分开维护。

    缓存相关的放在类 CacheConsts;系统配置相关的类放在 ConfigConsts

    2、常量的复用层次

    跨应用共享常量:放置在二方库中,通常位于 client.jar  中 constant 目录
    
    应用内共享常量:放置在一方库中,通常是子模块的constant目录
    
    子工程内部共享常量:当前子工程的constant目录
    
    包内共享变量:当前包下单独constant目录
    
    类内共享变量:直接类内部 private static fianl 定义
    
    

    3、避免通过一个类的对象引用访问该类的静态变量或者静态方法,无谓增加编译器解析成本,直接用类名引用即可。

    4、可变参数的使用,必须是相同类型参数,相同业务含义,才可以使用,避免使用object ,可变参数必须放在末尾,(不提倡可变参数编程)

    5、应该使用常量或者确定有值的对象来调用equals

    推荐使用 java.util.Objects#equals(JDK7 引入的工具类)。

    6、所有整型包装类对象之间值的比较,全部使用equals方法比较。

    所有整型包装类对象之间值的比较,全部使用 equals 方法比较。
    说明:对于 Integer var = ? 在-128 至 127 范围内的赋值,Integer 对象是在 IntegerCache.cache 产
    生,会复用已有对象,这个区间内的 Integer 值可以直接使用==进行判断,但是这个区间之外的所有数
    据,都会在堆上产生,并不会复用已有对象,这是一个大坑,推荐使用 equals 方法进行判断。
    

    7、关于基本数据类型和包装数据类型使用标准如下:

    【强制】所有的 POJO 类属性必须使用包装数据类型。

    【强制】RPC 方法的返回值和参数必须使用包装数据类型。

    【推荐】所有的局部变量使用基本数据类型。

    8、【强制】定义 DO/DTO/VO 等 POJO 类时,不要设定任何属性默认值。

    POJO 类的 createTime 默认值为 new Date(),但是这个属性在数据提取时并没有置入具体值,在更新其它字段时又附带更新了此字段,导致创建时间被修改成当前时间。

    【强制】构造方法里面禁止加入任何业务逻辑,如果有初始化逻辑,请放在 init 方法中。

    【强制】POJO 类必须写 toString 方法。使用 IDE 中的工具:source> generate toString
    时,如果继承了另一个 POJO 类,注意在前面加一下 super.toString。

    2) 工具类不允许有 public 或 default 构造方法

    [参考]分层异常处理规约

    在 DAO 层,产生的异常类型有很多,无法用细粒度的异常进
    行 catch,使用 catch(Exception e)方式,并 throw new DAOException(e),不需要打印日志,因为日志在 Manager/Service 层一定需要捕获并打印到日志文件中去,如果同台服务器再打日志,浪费性能和存储。

    在 Service 层出现异常时,必须记录出错日志到磁盘,尽可能带上参数信息,相当于保护案发现场。如果 Manager 层与 Service 同机部署,日志方式与 DAO 层处理
    一致,如果是单独部署,则采用与 Service 一致的处理方式。Web 层绝不应该继续往上抛异常,因为已经处于顶层,如果意识到这个异常将导致页面无法正常渲染,那么就应该直接跳转到友好错误页面,加上用户容易理解的错误提示信息。开放接口层要将异常处理成错误码和错误信息方式返回。

    相关文章

      网友评论

          本文标题:阿里开发规约摘要

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