- 向后兼容优先:新增字段尽量可选(
option<T>
);
- 不破坏既有消费者:新增接口而非修改签名;
- 能力分组:以 world 维度拆分能力,降低依赖面。
破坏性变更示例
record
改变字段顺序或新增“必填字段”;
enum
/variant
调整已有分支的语义;
- 删除接口/类型或更改返回错误模型。
迁移策略
- 以新接口/新 world 并存一段时间,逐步切流;
- 在合约测试中覆盖“旧客户端/新服务端”的组合;
- 文档化版本差异与弃用时间表。
- 合约测试:基于 WIT 的端到端兼容性用例;
- 基线:在 CI 中记录性能/错误与体积变化。