编码

通用

  1. 尽量少用static,除非是常量定义(现在用的也很少了)。
  2. 所有定义都需要有值,不管其是否有默认值
  3. null和empty的区别:null是不存在,empty是有但没有内容。
  4. 可能为空的对象,使用时要先检查为空,防止空异常
  5. 对外开放的函数定义成public,其他用private。
  6. 所有入口要有日志(@Log),特别是Controller层。重要业务要有业务流程日志,特别是对外接口。
  7. 编写测试用例文档和单元测试代码,保证质量
  8. 类的组包解包要成对出现,特别是类和json文本之间的转换。
  9. 深入分析 Java 中的中文编码问题

框架层

  1. 代码采用需求加载(类和变量的定义上加@Lazy(true))。
    1. 框架层和通用业务层:使用Lazy
    2. 业务层:所有使用层都需要(如user)则用Lazy
    3. 调用层(api,管理系统,任务服务X):不需要
  2. 加载时间长的功能要在使用层显式初始化(初始加载)

接口

  1. Controller层的函数需要确保向后兼容。通过版本号控制。如函数有输入输出调整,则版本号+1。新增新的逻辑,以前版本的逻辑不能修改。 service层的函数不能有版本号。
  2. 接口数据的规范(不允许对象空)。允许:null,[]。不允许:{}

数据

  1. 数据要有缓存
  2. 数据获取尽量用函数封装,可以处理异常情况。如map.get("xyz").toString()改用MapUtils.getString(map, "xyz");
  3. 数据源类型的数据(DataSource)和标准数据不能混用。区别:前者数量少量且恒定,后者数量可以很多。前者用下拉框,后者用搜索。

数据库

  1. 不能直接修改数据库结构,必须在代码层修改
  2. 所有表名要有前缀,如"thfinance"
  3. 数据库枚举字段(如状态)的使用
    1. 数量明确的用byte,预定义成类(和实体同层)
    2. 无限的用英文字符串(大写),放到业务系统的常量定义类(多层子类)。
  4. 表结构要有说明,字段说明写在类上,枚举字段的值写在常量定义类。
  5. 多对象组合时的新对象使用方法
    1. 不要用sql获取
    2. 选择一个做为主对象(如有需要则通过sql获取),其它对象的属性通过主对象的函数获取。这样可以在有缓存的情况下速度快,且sql取出来的数据纯粹(无关联更新)可缓存。
wangyaqi.cn all right reserved,powered by Gitbook该文件修订时间: 2020-04-18 15:35:02

results matching ""

    No results matching ""

    results matching ""

      No results matching ""