用途:在编写或评审代码时,判断某个原始类型(String、int、float 等)是否值得用领域专用类型包装,避免盲目包装或完全不包装两种设计失败。
主要能力:提供五项判断基准——是否存在领域不变量、是否存在参数取错风险、能否聚合领域操作、多个值是否不可分、使用位置是否多处;并给出判断流程与三档包装粒度(类型别名、构造时校验、带行为的领域类型)。同时列出 Primitive Obsession 与 Value Object Obsession 的症状,以及评审检查清单。
使用方式:对目标值逐条评估五项基准,任一强 Yes 即考虑包装,多个 Yes 强烈推荐,全部 No 则保持原始类型。包装手段按语言选择最轻量方案,如 Rust newtype、TypeScript Branded Types、Kotlin value class、Scala opaque type、Go type Foo string、Python NewType 等;无不变量仅防取错时优先用最轻量手段。
适用场景:领域建模、代码评审、类型设计讨论,尤其是 ID 类型、金额、邮箱、日期区间等。
限制:资料未提供具体安装命令、运行环境、收费与平台信息;该技能聚焦判断而非实现,包装后的具体设计需参考 domain-primitives-and-always-valid、parse-dont-validate、domain-building-blocks 等相关技能。