Cass-总结-溯源码二期

架构

业务状态应该持久化保存, 而不是根据持久化数据动态判断

如果实在需要动态判断, 则将状态获取封装成共用方法

接口

设计时定义接口应多花时间思考, 定下来后不要轻易改动

定义好后改起来很麻烦, 涉及到其他很多人

编写修改原有接口的 Story 时, 只需要列出新增或修改的字段

在列表中标出是该字段新增还是修改. 这样可以节省 Story 的设计时间, 并且入参也同样清晰

对外接口即使很简单也需要写 Story, 提供 Url/入参/出参 给其他组

方便其他组第一时间进行开发

数据库

生产环境大数据量表结构新增字段的方法

  1. 新建子表关联原表
    • 缺点: 数据库结构增熵
  2. 使用临时表保存原表数据(分批插入), 清空原表数据, 增加字段后重新导入
    • 缺点: 需锁表, 阻塞业务
  3. 使用工具增加
    • 缺点: 操作麻烦, 需要数据库权限
  4. 使用云数据库无感知新增

    阿里云可以像普通增加字段一样操作. 不锁表, 不会阻塞业务

    • 缺点: 需要上云

该问题是业界遇到的通用问题, 云上已有成熟的解决方案

大数据量的表设计应该把常用的数据冗余成字段保存

这样可以很方便的根据常用的数据查询或者查询出常用的数据, 而不需要对入参或出参进行额外处理

单元测试

单元测试实际修改或插入数据库的操作必须回滚

这样会导致数据库的数据非正常变更, 从而产生难以定位的 Bug