后端“可测试性”设计 —— 系统越大,越依赖“可测试”来保障可演化能力

24 阅读1分钟
  1. 前言

    • 大型后端不是“靠开发能力解决一切”
    • 而是靠 “可测试性设计” 提升演化速度
    • 测试不是 QA 的事,是系统设计的一部分
  2. 可测试性的判断标准

    • 业务逻辑可隔离
    • 依赖层可 mock
    • 状态变迁可观测
    • 回放可复现
    • 环境可一致
  3. 后端典型可测试性破坏因素

    • 直接依赖远程服务
    • 直接 new 客户端
    • 状态散落在各种对象里
    • 逻辑写在 Controller 里
  4. 可测试性工程化设计方案

    • Domain Driven API + 抽象 adapter
    • 业务逻辑无 IO(IO 在 Anti-corruption layer)
    • Mockable Client
    • Testable Event / State 设计
  5. Case:审批流状态机重构前 vs 重构后

    • 重构后的状态迁移测试可以100%自动化
  6. 总结

    • 业务越复杂越要可测试
    • 否则系统不可演化、不可 refactor