用途
该技能用于在 API 或 schema 的新契约替换旧契约时,选择迁移策略并划定验证边界,同时适用于 Matt 的 ticket 流程与 Pstack playbook。核心问题在于:是让所有调用方协同迁移、一次性删除旧 API,还是让新旧契约分阶段共存。
主要能力
- 调用方盘点:梳理所有调用方与兼容义务,包括外部消费者、独立部署的版本、已存储数据,以及发布或回滚要求。完成条件是:旧契约的消费者及其所需生命周期已经明确。
- 协同迁移与删除:当调用方均为内部、项目可以承受一次协同变更时,迁移每一个调用方,并在同一个验证单元中删除旧 API。仅有内部调用方并不足以成为保留兼容层的理由。多个有边界的 ticket 可以在隔离的集成分支上共同贡献这个单元。完成条件是:计划覆盖每个调用方、删除过时路径,并明确该单元的检查项。
- expand-contract 分阶段共存:只有当存在真实的兼容义务,或必须有独立通过的发布版本时,才使用这一策略。做法是新增新形式,分批迁移消费者并逐批检查,在兼容义务结束后移除旧形式。每个临时适配器都必须有移除条件和归属 ticket。完成条件是:共存理由与退出闸门都明确。
- 检查边界声明:为每个 ticket 或迁移阶段,以及最终集成单元声明检查项。在隔离单元内部,允许计划内、有范围、可回滚的破坏;阶段检查通过可以解锁该单元内的下一个 ticket。单元之外的工作在其完整的静态、运行时与契约检查通过之前保持阻塞。已批准的发布契约需要保留;如需变更,先寻求决策。完成条件是:中间进展与最终验收不会混淆。
- 测试更新:按照已接受的契约更新测试。保留独立的行为回归测试,删除仅用于保护已退役实现的测试。
使用方式
将其作为迁移决策与验证边界的判断框架:先完成调用方盘点,再根据是否存在真实兼容义务选择协同删除或 expand-contract;随后为每个阶段和最终单元声明检查项,并为临时适配器指定移除条件与归属;最后按新契约调整测试。
适用场景
适用于单个项目内部、协调成本可控的 API 或 schema 替换;也适用于存在外部消费者、多版本独立部署或数据兼容要求的变更。
限制
资料未提供具体工具命令、代码示例或平台配置说明;策略选择依赖对兼容义务的实际盘点结果,资料未给出量化判定标准。