健壮性原则:发送要保守,接收要开放

副标题 / 摘要 “发送要保守,接收要开放”强调协议实现要严格输出、宽容输入。本文解释其工程价值与风险控制。 目标读者 设计协议或接口的开发者 需要提升系统兼容性的工程师 关注系统稳定性的技术负责人 背景 / 动机 系统之间的协作经常出现版本差异或边界数据。 健壮性原则旨在提高兼容性与稳定性,但也容易掩盖错误。 核心概念 保守发送:严格遵循协议输出 开放接收:尽量容忍输入差异 容错边界:兼容但不放弃校验 实践指南 / 步骤 输出严格遵守协议(字段、格式、范围) 输入做宽容解析(大小写、空白、可选字段) 对异常输入记录告警 明确“可容忍范围”的边界 可运行示例 # 允许输入有空白/大小写差异,但输出严格规范 def parse_level(value: str) -> str: v = value.strip().lower() if v in ("info", "warn", "error"): return v return "info" # 容错默认值 def emit_level(level: str) -> str: # 发送时严格规范 return level.lower() if __name__ == "__main__": print(parse_level(" WARN ")) print(emit_level("WARN")) 解释与原理 开放接收降低了“因为小差异导致系统失败”的概率。 保守发送则保证你不会向外部传播错误数据。 常见问题与注意事项 会不会掩盖错误? 会,因此需要告警与监控。 开放接收是否意味着接受所有输入? 不,仍需严格校验关键字段。 何时不应开放接收? 安全敏感或金融类场景要更严格。 ...

2026年1月24日 · 1 分钟 · map[name:Jeanphilo]