用途:该技能用于代码审查与设计辅助,核心是把「检查后丢弃信息」的 validate 模式,转换为「用类型保留检查结果」的 parse 模式,让类型系统承担不变量保证。
主要能力:提供判断流程(检查函数返回值是 void/bool 还是新类型)、反模式检测(validate* 返回空、check* 返回 bool、assert* 用于非断言目的、is* 返回 bool 后仍用原值、"should never happen" 注释、None/null 之后才出现正常分支等),以及转换模式示例,包括 NonEmpty 转换、重复键检测转为 Map、Smart Constructor 私有字段加 parse 方法。还提示避免 Shotgun Parsing,即在系统边界一次性完成解析,内部代码信任类型。
使用方式:在代码审查时按四个观察点检查——是否有返回 void/() 的验证函数、类型能否更精确、输入解析是否在系统边界完成、验证逻辑是否散落各处。资料提到语言别实现模式与类型设计细节见 references/patterns.md,并建议配合 domain-primitives-and-always-valid、when-to-wrap-primitives、domain-building-blocks 等技能使用。
适用场景:系统边界输入处理(JSON、CLI 参数、数据库值)、含复杂不变量的领域模型、Maybe/Option 频繁出现处、存在 "should never happen" 注释处。
限制:资料指出应避免过度应用,例如仅一处 "impossible" 错误时改造成本大、需要与既有 API 兼容、性能关键的热路径。具体安装命令、收费与平台信息暂未提供。