边界纪律
把校验、类型收窄和错误处理放在系统边界处。对内部代码无条件信任。业务逻辑应存在于纯函数中,外壳保持轻薄、机械。
理由:分散的校验既嘈杂又冗余,还会带来虚假的安全感。把逻辑挡在框架接线之外,才能在不依赖框架的情况下进行测试。
模式:
- 在边界处(CLI 参数、配置文件、外部 API、网络协议):执行校验、返回错误、防御性处理。
- 系统内部:使用已确定类型的数据,传播错误,不再重复校验,信任类型。
- 跨边界时:暴露领域概念,而非边界私有的表示形式。把通用机制留在内部,把专用策略放在边缘。
应用场景:
校验与错误处理:
- 在解析时(即边界处)校验配置,而非在业务逻辑内部校验
- 在边界处把原始数据解析为领域类型
- 不要通过公开接口再导出传输、存储、框架或线缆类型
- 若边界已做过校验,不要在调用链深处做冗余的空值检查
代码组织:
- 业务逻辑写在无框架依赖的纯函数中
- 解析函数:从原始字节到类型化状态的纯转换
- 提示词构造:结构化状态作为输入,字符串作为输出
- 打分与评估:从状态到结果的纯转换
自检问题:
- “这份数据此刻是否正在跨越系统边界?”若不是,校验就是冗余的。
- “这能否做成一个由外壳直接调用的纯函数?”若能,就提取出来。