项目代码清晰的原因-一些好的设计技巧

156 阅读1分钟

项目中的一些比较好的设计

下边是我总结的一些项目中比较好的设计,欢迎大家交流!

1. 账务系统的技巧

  1. 账务处理:执行超过《最大交易执行时间》后直接异常回滚,退出
  2. 转账操作:先判断账户ID大小,每次先锁小的,降低死锁概率

2. 业务系统的技巧

  1. 对交易流程的抽象:
    • 抽象出公共流程,主流程:prepareTrans()和excute()两步
      • prepareTrans():onBefore()和save()分别做前置校验和入库
      • excute():beforeTarns()、doExcute()、afterTrans()分别前置更新、账务处理、后置更新
    • 在主流程方法中,根据交易类型字段回调特殊业务的相关处理
  2. 表结构设计 合单表、业务订单表、交易订单表(和核心账务一一对应)、交易订单明细表、支付消费表(和支付订单一一对应)、支付消费扩展表
  3. 异常处理及补偿机制
    • 定时查询8小时——>30分钟前的交易,调用对应的补单代码
    • 直接查询和账务相关的交易订单、支付订单表,通过对应交易码回调特殊业务的校验、更新业务订单表等
  4. 统一用异常而不是错误码,控制流程。代码更加清晰
  5. 真正的业务流程组合服务记录完整的订单、支付相关表,其它前置及后置服务只做校验、报文转换动作,不记表
  6. 拆出独立前置服务做平台准入、基本校验、接口及业务类型的权限控制