阿里编码规范核心内容

编程规约

  • 一方库、二方库、三方库

    • 一方库:本工程内部子项目模块依赖的库(jar 包)。
    • 二方库:公司内部发布到中央仓库,可供公司内部其它应用依赖的库(jar 包)。
    • 三方库:公司之外的开源库(jar 包)。
  • DO、DTO、BO、VO

    • DO: 与数据表对应的实体类, xxxDO,xxx即为数据表名
    • DTO: 数据传输对象,service层向外传输数据的对象, xxxDTO,xxx为业务领域相关的名称
    • BO: 业务对象,由Service层输出的封装业务逻辑的对象
    • VO: 显示层对象,通常是Web向模板渲染引擎层传输的对象, xxxVO,xxx一般为网页名称
  • RPC: 远程调用框架

    • RPC 的方法参数和返回值必须使用包装类型
  • 集合转数组

    • 必须使用集合的 toArray(T[] array),传入的是类型完全一
      致、长度为 0 的空数组
    List<String> list = new ArrayList<>(2);
    list.add("guan");
    list.add("bao");
    String[] array = list.toArray(new String[0]);
    
  • 集合有序(sort)和稳定性(order)有序性是指遍历的结果是按某种比较规则依次排列的。稳定性指集合每次遍历的元素次序是一定

    • ArrayList 是 order/unsort
    • HashMap 是 unorder/unsort
    • TreeSet 是 order/sort
  • Map 类集合 K/V 能不能存储 null 值的情况

    集合类KeyValueSuper说明
    Hashtable不允许为 null不允许为 nullDictionary线程安全
    ConcurrentHashMap不允许为 null不允许为 nullAbstractMap锁分段技术(JDK8:CAS)
    TreeMap不允许为 null允许为 nullAbstractMap线程不安全
    HashMap允许为 null允许为 nullAbstractMap线程不安全
  • jdk8新特性

    • 遍历Map使用Map.forEach
    • 使用 Instant 代替 Date
    • LocalDateTime 代替 Calendar
    • DateTimeFormatter 代替 SimpleDateFormat
    • Optional 类来防止 NPE 问题
  • 注释

    • 对于暂时被注释掉,后续可能恢复使用的代码片断,在注释代码上方,统一规定使用三个斜杠(///)来说明注释掉代码的理由

异常与日志

  • 在调用 RPC、二方包、或动态生成类的相关方法时,捕捉异常必须使用 Throwable
    类来进行拦截
  • 避免重复打印日志,浪费磁盘空间,务必加 additivity = false
  • 多层条件语句建议使用卫语句、策略模式、状态模式等方式重构

mysql

  • 表达是与否概念的字段,必须使用 is_xxx 的方式命名,数据类型是 unsigned tinyint(1 表示是,0 表示否),表达逻辑删除的字段名 is_deleted,1 表示删除,0 表示未删除
  • 任何字段如果为非负数,必须是 unsigned
  • POJO 类中的任何布尔类型的变量,都不要加 is 前缀,所以,需要在设置从 is_xxx到 Xxx 的映射关系
  • 表必备三字段:id, create_time, update_time,其中 id 必为主键,类型为 bigint unsigned、单表时自增、步长为 1。create_time, update_time的类型均为 datetime 类型
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值