Cass-总结-溯源码二期
2020-11-13
架构
业务状态应该持久化保存, 而不是根据持久化数据动态判断
如果实在需要动态判断, 则将状态获取封装成共用方法
接口
设计时定义接口应多花时间思考, 定下来后不要轻易改动
定义好后改起来很麻烦, 涉及到其他很多人
编写修改原有接口的 Story 时, 只需要列出新增或修改的字段
在列表中标出是该字段新增还是修改. 这样可以节省 Story 的设计时间, 并且入参也同样清晰
对外接口即使很简单也需要写 Story, 提供 Url/入参/出参 给其他组
方便其他组第一时间进行开发
数据库
生产环境大数据量表结构新增字段的方法
- 新建子表关联原表
- 缺点: 数据库结构增熵
- 使用临时表保存原表数据(分批插入), 清空原表数据, 增加字段后重新导入
- 缺点: 需锁表, 阻塞业务
- 使用工具增加
- 缺点: 操作麻烦, 需要数据库权限
使用云数据库无感知新增
阿里云可以像普通增加字段一样操作. 不锁表, 不会阻塞业务
- 缺点: 需要上云
该问题是业界遇到的通用问题, 云上已有成熟的解决方案
大数据量的表设计应该把常用的数据冗余成字段保存
这样可以很方便的根据常用的数据查询或者查询出常用的数据, 而不需要对入参或出参进行额外处理
单元测试
单元测试实际修改或插入数据库的操作必须回滚
这样会导致数据库的数据非正常变更, 从而产生难以定位的 Bug