SuperAPI AI 工具集

swift-type-typed-design

设计与创作

查看项目

更新于 10-16 02:32

技能介绍

用途:这是一个用于设计 Swift 模型的技能,目标是把业务规则编码进类型中,使无效状态难以或无法被表示,从而获得编译期保证。

主要能力与原则:先建模领域概念,再考虑实现细节;除非需要引用标识,优先使用值语义(struct、enum);仅在能捕获关键不变量时才用强领域类型替换原始类型;采用“解析而非验证”,即一次性构造已验证值,随后在系统中传递已验证类型;优先编译期保证而非运行时检查;改动保持增量且局限于当前建模的工作流;引入包装类型时应提升调用点清晰度,而非单纯追求类型新奇。

使用方式:技能提供决策树引导——需要心智模型与核心原则时查阅参考中的“Foundations”及 fundamentals-of-type-driven-code;需要更安全的用户输入或请求载荷时查阅“Validation-carrying types”与 type-safe-validation;需要编译期受控的功能或工作流步骤访问时查阅“Witness pattern”与对应文档;需要以积/和类型建模领域时查阅“Domain modeling flow”;需要从现有模型消除不可能状态时查阅“Illegal-state elimination”。操作流程为:先用自然语言识别领域不变量与前置条件;把概念分类为原始领域类型、积类型(AND)、和类型(OR)、witness/前置条件类型;选择能编码该不变量且最小的类型改动;把检查移动到类型构造边界;更新下游 API 消费强类型而非原始类型;移除类型已保证的冗余运行时校验。

建模启发式:从 struct 开始;用 enum 表示互斥状态;用嵌套 ID 类型避免跨实体标识混淆;当 witness 可建模访问控制时避免布尔门;公共领域 API 中语义重要时避免 String/Int;谨慎使用 Optional,每个 Optional 都引入 none 状态。

应避免的反模式:校验散落在各调用点;重复检查本应由类型构造证明的不变量;用两个 Optional 建模带非法组合的选择;在多个入口用普通 Bool 做功能门控;过早引入无编码不变量或语义收益的包装。

限制:具体安装命令、收费与平台支持等事实资料暂未提供。