Communitygithub.com

AaronAsAChimp/skills

用于将代码移植到另一种编程语言

skills 是什么?

该技能专门用于将代码从一种编程语言移植到另一种语言。它首先创建当前代码关键功能的概要,包括识别边缘情况、所用库及其在目标语言中的推荐等效项。通过结构化输入或提问工具与用户交互,确认每个库的等效实现,并提供“桩(stub)库功能”或“从头实现”等选项。然后移植单元测试作为验证基础,最后根据概要移植代码,并根据测试结果迭代修复。该技能支持任何代码移植场景,适用于 Claude Code、Cursor 等 AI 编码助手平台,旨在确保移植后的代码遵循目标语言的模式和命名规范,同时保持与原代码的对应关系,便于用户定位功能。

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/AaronAsAChimp/skills/tree/HEAD/skills/porting-code

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

移植代码

此技能用于将代码从一种编程语言移植到另一种语言。

输入

  • 目标语言
  • 要移植的源文件或代码

流程

首先创建当前代码中关键功能的概要。注意以下内容:

  • 代码或单元测试中涵盖的边缘情况
  • 所使用的库以及目标语言中推荐的等效库

使用结构化用户输入或提问工具,逐一检查每个使用的库,并与用户确认应使用哪个等效库。

提供额外选项:

  • 桩(stub)库功能
  • 从头实现

接下来移植单元测试。以此作为验证移植代码的基础。

最后使用之前准备的概要移植代码。利用单元测试来指导修复,迭代此过程。

通用指南

  • 使用目标语言中常见的模式。
  • 使用目标语言中常见的命名约定。
  • 移植后的代码应镜像原始代码,以便用户轻松找到等效功能。
  • 保留原始代码中的日志和注释。
  • 注意任何新的边缘情况。
  • 注意代码结构的任何变化,以帮助用户定位。

成功标准

  • 单元测试通过(如果存在)。
  • 代码检查通过(如果存在)。
  • 所有关键功能均已实现。
  • 所有已识别的边缘情况均得到处理。
  • 所有需要的库均已安装并准备就绪。

示例

示例原始代码

/**
 * 计算产品的最终价格,包括任何折扣和税费。
 * 
 * 如果折扣无效则抛出错误。
 */
export function calculatePrice(basePrice: number, discount: number | null, taxRate: number): number {
	let discountAmount = 0;

	if (discount) {
		if (discount >= 1) {
			// 如果折扣配置错误,可能会导致负价格。在向用户显示无效价格之前停止。
			throw new Error('无效折扣');
		}

		discountAmount = basePrice * discount;
	}

	const taxAmount = (basePrice - discountAmount) * taxRate;

	return (basePrice - discountAmount) + taxAmount;
}

示例概要

关键功能:

  • calculatePrice 函数接受基准价格、折扣百分比和税率,计算产品的最终价格。
    • 边缘情况:
      • 折扣可以为 null
      • 如果折扣大于或等于 1,则抛出异常以防止无效价格。

示例移植代码

def calculate_price(base_price: float, discount: Optional[float], tax_rate: float) -> float:
	"""
	计算产品的最终价格,包括任何折扣和税费。

	如果折扣无效则引发异常。
	"""
	discount_amount = 0

	if discount is not None:
		if discount >= 1:
			# 如果折扣配置错误,可能会导致负价格。在向用户显示无效价格之前停止。
			raise Exception('无效折扣')

		discount_amount = base_price * discount

	tax_amount = (base_price - discount_amount) * tax_rate

	return (base_price - discount_amount) + tax_amount

示例响应

我已将代码移植到 Python。

  • calculatePrice 现在变成了 calculate_price

Individual skills in this repo

This repo contains 7 individual skills — each has its own dedicated page.

相关技能