一、功能

  • 功能基本流的完整度
  • 设计逻辑合理度
    • 变更的影响范围
    • 兼容性
  • 异常流的完整度
    • 超时
    • 熔断
    • 失败处理
    • 补偿机制
  • 可测性及测试成本
  • 重复造车轮
  • 对外API
    • 兼容性
    • 多版本共存

二、性能

  • 弹性伸缩
  • 耗时长的操作
  • 批量处理
  • 异步处理

三、数据库

  • 表设计
    • 分库分表
    • 定期归档
  • 索引设计
    • 旧表增加索引,需要对该表所有索引进行评估
    • 大表的索引创建,要考虑执行时间
    • 唯一约束:旧有字段需提前校验
  • 字段设计
    • 冗余字段:需考虑数据一致性
    • 字段长度:冗余
    • 字段类型:不同表的相同字段是否一致
    • 修改字段:考虑兼容性
    • 新增字段:如果是必填项,需考虑兼容性
    • 删除字段:新版本上线后,再经过几个版本迭代才可以删除

四、缓存

  • 是否需要缓存
  • 缓存类型是否合理
  • 写入、更新、删除逻辑是否合理
  • 雪崩、穿透
  • 失效时间
  • 缓存预热

五、回滚及灰度

  • 灰度方案
  • 灰度小流量上线方案
  • 必须支持回滚,尤其是涉及数据、缓存等
    • 复杂数据库的设计,可以考虑只回滚程序,不回滚数据的方案

六、安全

  • 数据安全
    • 数据存储安全
    • 数据访问安全
  • 功能安全
  • 防刷

七、可观测性

  • 日志完整度
  • 异常监控报警
  • 调用链
  • 监控
    • 考虑其他关联系统是否要同步添加

八、国际化(如果涉及)

以上所有都要考虑国际化的影响

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐