关于 translate-programming-language
用于将生产服务或应用从一种语言和运行时迁移到另一种的技能,适合需要保持外部可观察行为的工程团队。它强调基于源运行时生成基准、兼容性记录,并通过流量回放和渐进切换验证迁移。
主要功能
- 01界定迁移边界与行为契约
- 02从源运行时生成基准数据
- 03生成并维护迁移测试
- 04记录跨语言兼容性差异
- 05通过回放、影子流量和基准测试验证
适用场景
- 01迁移生产服务的单个模块或端点
- 02检查语言运行时差异对行为的影响
- 03为迁移建立可重复的测试基准
- 04在切换前比较真实请求与响应
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ mizchi/ skills --skill translate-programming-language安装后在 Claude Code 中输入/translate-programming-language确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
README.mdSKILL-ja.mdagents/openai.yamlreferences/compatibility-knowledge.mdoracle-driven-parity.mdrollout-and-cutover.mdtest-migration.md详细介绍
翻译编程语言
使用此技能将生产环境中的服务端或应用程序代码从一种语言/运行时迁移到另一种,同时不丢失外部可观察到的行为。首先确保行为一致,然后再于旧运行时移除后,按照目标语言的特点简化代码。
核心规则
- 将源运行时视为初始基准,但在有公开标准时,应查阅该标准。
- 切勿手动编写预期测试数据。应从固定版本的源运行时或标准符合性测试框架生成。
- 可复用的迁移文档中不得包含特定领域的名称、URL、模式、客户或产品事实。
- 将语言/运行时特性放入兼容层,而非领域逻辑。
- 为每个兼容层制定删除计划:记录源行为、目标行为、标准/规范参考、调用方,以及切换后的迁移目标。
- 不要只依赖单元测试来验证行为一致性。切换前,应使用影子流量/重放流量验证,并执行贴近生产环境的基准测试。
工作流
-
界定迁移边界
- 选择一个范围较小的契约:函数、模块、端点、消息类型或协议处理器。
- 清点输入、输出、副作用、状态、时钟、随机性、区域设置、环境变量、文件系统/网络使用情况和错误行为。
- 确定外部可见契约要求的是字节完全一致、结构等价,还是语义等价。
-
生成基准
- 阅读 oracle-driven-parity.md。
- 固定源运行时和依赖版本。
- 针对常见情况、边界值、格式错误的输入、错误和副作用,从源实现生成测试数据输出。
- 如果存在标准,应添加基于标准的测试用例,并记录源/目标运行时的差异。
-
生成迁移测试
- 阅读 test-migration.md。
- 根据源测试、测试名称、数据提供程序、示例或 API 契约,生成目标语言的行为一致性测试桩。
- 在 CI 中明确显示尚未完成的测试桩,然后用基于测试数据的测试替换它们,直到跳过/待处理测试数量归零。
- 针对发现的每项语言/运行时差异,添加面向分支的测试用例。
-
积累迁移知识
- 阅读 compatibility-knowledge.md。
- 维护一份持续更新的跨语言差异目录,涵盖数值转换、真值判断、数组/映射/顺序、JSON、URL 编码、正则表达式、时间、加密、二进制协议、HTTP、异常和并发。
- 对每项差异,记录源行为、目标行为、可用时的标准行为、选定的兼容方案、测试和删除路径。
-
迁移领域代码
- 先迁移叶子/纯模块,再迁移共享辅助代码,然后是 I/O 适配器,最后是编排/端点代码。
- 保持目标语言中的领域代码易读,并通过兼容辅助函数处理旧有特性。
- 优先使用结构化解析器、官方协议库和生成代码,而非临时的字符串处理。
- 只有在行为一致性得到验证后才重构;否则,确保每项更改都能追溯到源行为。
-
在真实环境中验证并切换
- 阅读 rollout-and-cutover.md。
- 执行完整的行为一致性检查、源测试数据重新生成检查、生成测试偏差检查、竞态/静态检查和基准测试。
- 使用重放或影子流量,比较真实请求/响应、日志、指标、标头、二进制负载和副作用。
- 按明确的回滚阈值逐步进行金丝雀发布,然后至少保留旧运行时一个回滚窗口。
发布门槛
在所有适用的门槛都通过之前,不要宣布迁移已就绪:
- 源端预期结果重新生成后,不应出现意外的测试样例差异。
- 生成的兼容性测试桩与源测试/契约保持同步。
- 待处理/跳过的兼容性测试数量为 0,失败数量也为 0。
- 每项有意为之的运行时差异都已记录在兼容性知识库中。
- 构建、Lint/静态分析、竞态/并发检查和安全检查均已通过。
- 基准测试显示,延迟、吞吐量、分配或资源方面没有不可接受的回退。
- 影子运行/回放/金丝雀对比结果达到约定的差异阈值。
- 回滚路径已测试,且旧运行时在回滚窗口内仍可部署。
报告模板
在 PR 正文、设计说明或迁移状态报告中使用以下格式:
## Scope
- Source boundary:
- Target boundary:
- Contract level: byte-exact / structural / semantic
## Oracle
- Source runtime/dependency versions:
- Fixture generation command:
- Standard/spec references:
- Boundary classes covered:
## Test Migration
- Source tests/contracts discovered:
- Generated stubs:
- Pending parity tests:
- Drift checks:
## Compatibility Knowledge
- New runtime differences:
- Compatibility helpers added:
- Deletion plan:
## Verification
- Unit/parity:
- Race/static/build:
- Benchmarks:
- Shadow/replay:
- Canary:
- Rollback:
评论
支持 Markdown