第6部分:系统考虑
第6部分系统考虑:把局部代码判断扩展到系统边界、输入输出、资源、环境约束和端到端证据。
学习目标
- 能把局部实现放回系统边界,写清输入、输出、依赖和责任。
- 能识别资源耗尽、版本差异、外部失败和端到端路径中的系统风险。
- 能用固定环境重放跨边界证据,并指出局部通过为何不足以推出系统通过。
为什么需要这一部分
系统考虑要求把“函数正确”扩展为“系统在真实边界下可交付”。服务、数据库、网络、配置、资源和部署环境共同决定结果;一个局部测试通过,不能证明跨服务的契约、容量和恢复行为。先画边界,再固定端到端输入,才能知道责任和证据落在哪里。
先避开三个系统误区
核心合同与操作术语
↡系统负责的组件、外部依赖、数据流和责任边界决定范围;↡跨组件传递的数据、事件、错误和返回条件定义接口。↡CPU、内存、连接、容量和时间预算等有限条件决定容量;↡版本、配置、权限、网络和外部服务状态决定重现条件;↡从真实入口到结果、观测和恢复的完整证据裁决系统行为。
目录节点逐项深读
第6部分 系统考虑
本部分的阅读合同是:明确系统边界,固定输入输出和资源预算,记录环境约束,执行端到端路径并保留失败恢复。只要跨边界的首个偏离无法定位,结论就不能写成系统保证。
最小可重放实现
system = freeze(boundary, version, config, dependencies)
input = define_end_to_end_request(system)
result = run_with_resource_budget(input)
record(trace, externalFailure, recovery, observation)
reset_environment()
assert replay(input) == baseline.trace正常轨迹确认契约;边界轨迹耗尽资源或改变权限;故障轨迹注入外部超时或版本不兼容;复位轨迹恢复依赖和配置,重新定位首个偏离。
先预测,再操作证据实验
先预测系统边界、资源或环境改变后哪个节点会先变化,再只切换一个场景。组件展示的是跨边界证据链,不是生产容量测试。
第6部分 系统考虑 · 证据实验
系统边界 → 输入输出 → 资源 → 环境约束 → 端到端证据
固定版本、输入和观察窗口,只改变一个条件;先预测首个偏离,再用同一基线复位。
练习与答案
练习
问题 1:画系统边界。 一个接口调用数据库和第三方服务,请列出端到端验收需要固定的条件。
问题 2:诊断局部通过。 单元测试通过但线上出现连接耗尽,首个缺口可能在哪里?
问题 3:设计环境复位。 配置改动后故障消失,为什么不能直接接受?
术语表
名词解释
本章出现的专业名词,用大白话再讲一遍。
- 系统边界
- 组件、依赖、数据流和责任的范围。
- 输入输出
- 跨组件传递的数据、事件、错误和返回条件。
- 资源
- 时间、连接、内存、容量等有限预算。
- 环境约束
- 版本、配置、权限、网络和外部状态。
- 端到端证据
- 从入口到结果、观测和恢复的可重放材料。
本页小结
系统考虑把局部正确性放回边界、契约、资源和环境。端到端证据必须包含成功与外部失败、恢复和复位;否则局部绿色不能升级成系统保证。
讨论
评论区加载中…