📌 内容摘要

  • Claude 在代码任务上全球领先(SWE-bench 80.8%),但用对 Prompt 才能充分发挥它的能力。
  • 本文提供10个覆盖编程全流程的 Prompt 模板:从需求到代码、从 Bug 到修复、从审查到重构。
  • 每个模板附有填写说明和实际示例,可直接复制修改使用。
  • 最后附”让 Claude 写出更好代码”的5条通用原则。

一、为什么需要专门的代码 Prompt?

Claude 的代码能力在全球顶尖模型中处于第一梯队,但”Claude 能写代码”和”Claude 能写出你想要的代码”之间,差距在于你怎么描述需求。

模糊的问题只能得到通用的答案。一个”帮我写个登录功能”的请求,和一个说清楚技术栈、数据库结构、安全要求的请求,得到的代码质量天壤之别。以下10个模板,覆盖了程序员日常工作中最高频的场景。

模板一:从零生成功能代码

适用场景:你需要 Claude 从头写一段功能代码。

请用 [语言/框架] 实现以下功能:

【功能描述】
[用1-3句话描述要实现什么]

【技术约束】
- 语言/框架版本:[如 Python 3.11 / React 18 / Node.js 20]
- 依赖限制:[只能用标准库 / 可以用 npm 包 / 已有依赖见下]
- 现有代码上下文:[如有相关代码,粘贴在这里]

【输入输出】
- 输入:[描述函数/接口的输入,含类型]
- 输出:[描述期望的输出,含类型]
- 边界情况:[需要处理的特殊情况,如空值、超长输入等]

【其他要求】
- [如:需要写单元测试 / 添加错误处理 / 加注释 / 符合 PEP8]

填写示例:

请用 Python 3.11 实现以下功能:

【功能描述】
解析一个 CSV 文件,按指定列分组并计算每组的均值和标准差。

【技术约束】
- 语言版本:Python 3.11
- 依赖:只能用 pandas,不用其他第三方库
- CSV 文件编码:UTF-8,第一行是表头

【输入输出】
- 输入:file_path(字符串),group_col(分组列名),value_col(计算列名)
- 输出:DataFrame,包含列:group, mean, std,按 mean 降序排列
- 边界情况:文件不存在时抛出 FileNotFoundError;value_col 有空值时自动忽略

【其他要求】
- 添加类型注解
- 写2个单元测试(正常情况和空值情况)

模板二:Bug 调试与修复

适用场景:代码出错,需要 Claude 帮你找原因并给出修复方案。

以下代码出现了问题,请帮我找出 Bug 并修复。

【错误现象】
[描述报错信息或异常行为,如:运行时抛出 KeyError / 结果与预期不符]

【错误信息】(如有)
[粘贴完整的错误堆栈]

【出问题的代码】
[粘贴代码]

【预期行为】
[描述这段代码应该做什么]

【已经尝试过的方法】(可选)
[列出你已经排查过的方向,避免 Claude 重复]

请先说明你判断的根本原因,再给出修复后的完整代码。

模板三:代码审查

适用场景:你写完一段代码,想让 Claude 帮你找潜在问题。

请对以下代码进行 Code Review,重点关注:

审查优先级(从高到低):
1. 安全漏洞(SQL 注入、XSS、权限绕过等)
2. 逻辑错误(边界条件、并发问题、数据一致性)
3. 性能问题(N+1 查询、不必要的循环、内存泄漏风险)
4. 可维护性(命名、注释、函数职责)

代码语言/框架:[填写]
代码用途:[一句话说明这段代码的作用]

[粘贴代码]

输出格式:
- 每个问题单独列出,注明行号和严重程度(高/中/低)
- 给出具体的修改建议或修改后的代码片段
- 最后给出一句话总体评价

模板四:代码重构

适用场景:老代码可以工作但难以维护,需要重构。

请重构以下代码,目标是提升可读性和可维护性,不改变功能。

【重构目标】(勾选适用项)
- [ ] 拆分过长的函数(每个函数不超过30行)
- [ ] 消除重复代码(提取公共逻辑)
- [ ] 改善命名(变量名、函数名更有语义)
- [ ] 添加类型注解
- [ ] 改善错误处理
- [ ] 其他:[填写]

【不能改变的部分】
[列出函数签名、接口或行为必须保持不变的部分]

[粘贴原始代码]

重构后请说明:主要做了哪些改动,以及改动的理由。

模板五:SQL 查询生成与优化

适用场景:需要写复杂 SQL,或现有 SQL 性能差需要优化。

【数据库类型】MySQL 8.0 / PostgreSQL 15 / [其他]

【相关表结构】
[粘贴 CREATE TABLE 语句,或描述表名和关键字段]

【查询需求】
[用自然语言描述你要查什么,包含过滤条件、聚合方式、排序等]

【数据量级】(用于性能考虑)
- 主表约 [N] 万行
- 已有索引:[列出现有索引,或说明"不知道"]

请给出:
1. SQL 语句(含注释解释关键部分)
2. 如果有性能风险,指出并给出优化建议
3. 建议添加的索引(如有必要)

模板六:API 接口设计

适用场景:需要设计一套 RESTful API 或给现有接口写文档。

请为以下功能设计 RESTful API 接口。

【功能描述】
[描述这个模块/服务要做什么]

【技术背景】
- 后端框架:[如 FastAPI / Express / Spring Boot]
- 认证方式:[JWT / Session / API Key / 无需认证]
- 数据格式:JSON

【核心实体】
[描述涉及的主要数据对象,如:用户、订单、商品等]

请输出:
1. 接口列表(HTTP方法 + 路径 + 一句话描述)
2. 每个接口的请求参数和响应结构(JSON 格式示例)
3. 错误码定义
4. 如有复杂逻辑,说明设计决策

模板七:正则表达式生成

适用场景:需要匹配特定格式的字符串,但写不出正则。

请帮我写一个正则表达式,用于 [语言/框架,如 Python re / JavaScript / Java]。

【需要匹配的格式】
[描述需要匹配的字符串格式]

【匹配示例】
应该匹配:
- [示例1]
- [示例2]

不应该匹配:
- [反例1]
- [反例2]

请给出:
1. 正则表达式
2. 逐段解释每部分的含义
3. 在目标语言中的使用示例代码

填写示例:

请帮我写一个正则表达式,用于 Python re。

【需要匹配的格式】
中国大陆手机号:1开头,第二位是3-9,共11位数字

【匹配示例】
应该匹配:13812345678、19987654321、18600001111
不应该匹配:12345678901(第二位是2)、1381234567(只有10位)、138-1234-5678(含横线)

请给出正则表达式、逐段解释,以及 Python 示例代码。

模板八:单元测试生成

适用场景:有一段函数或类,需要快速生成覆盖率高的单元测试。

请为以下代码生成单元测试。

【测试框架】[如 pytest / Jest / JUnit / Go testing]
【Mock 工具】[如 unittest.mock / jest.mock / Mockito,或"不需要 mock"]

[粘贴需要测试的代码]

测试覆盖要求:
- 正常路径(Happy path):至少2个典型用例
- 边界情况:空输入、最大值、最小值
- 异常情况:无效输入、错误状态
- 如有外部依赖,使用 mock

输出格式:可以直接运行的完整测试文件,每个测试函数加注释说明测试目的。

模板九:代码解释与文档生成

适用场景:接手别人的代码,需要快速理解;或者需要给代码写文档注释。

请对以下代码做两件事:

1. 解释这段代码:
   - 整体功能是什么(一句话)
   - 执行流程(分步骤说明关键逻辑)
   - 使用了哪些值得注意的技术或模式
   - 潜在的坑或注意事项

2. 生成文档注释:
   按 [Docstring 格式,如 Google style / NumPy style / JSDoc] 格式,
   为每个函数/方法写文档注释,包含:功能描述、参数说明、返回值、异常。

[粘贴代码]

模板十:技术方案对比

适用场景:面临技术选型决策,需要客观分析多个方案的优劣。

我需要在以下方案中做技术选型,请帮我做对比分析。

【需求背景】
[描述要解决的问题和关键约束,如:数据量级、并发要求、团队技术栈]

【备选方案】
方案A:[名称和简介]
方案B:[名称和简介]
方案C:[名称和简介,可选]

【我最关心的维度】(按重要性排序)
1. [如:性能]
2. [如:开发效率]
3. [如:运维成本]
4. [如:社区生态]

请用表格对比各方案,然后给出针对我的场景的明确推荐,并说明理由。
如果信息不足以给出明确推荐,告诉我还需要什么信息。

让 Claude 写出更好代码的5条通用原则

原则一:粘贴相关上下文代码
不要只描述需求,把相关的数据结构、接口定义、已有代码片段一起给 Claude 看。它看到的上下文越完整,生成的代码与你的项目融合度越高。

原则二:说明”不能做什么”
如果有技术债、不能引入新依赖、需要兼容旧版本等约束,明确列出。否则 Claude 可能给你一个技术上更优但实际不可用的方案。

原则三:要求解释而不只要代码
在 Prompt 末尾加一行”请解释关键设计决策”,能帮你理解代码逻辑,也更容易发现 Claude 误解了你的需求。

原则四:迭代而不是一次完美
先让 Claude 写出框架,再逐步细化。”先写函数签名和注释,不用实现细节”——这种分阶段的方式往往比一次要求完整实现效果更好。

原则五:让 Claude 审查自己的代码
生成代码后,紧接着问:”这段代码有没有潜在的 Bug 或安全问题?”——这个二次审查步骤能抓住很多第一遍遗漏的问题。

常见问题

Q:Claude 生成的代码直接能用吗?
建议把 Claude 当成一个写得很快但需要审查的初级工程师——代码逻辑通常是正确的,但需要你检查是否符合项目规范、是否有遗漏的边界情况。不要不看就直接提交到生产环境。

Q:代码太长,Claude 写到一半停了怎么办?
直接回复”继续”即可。如果输出被截断,Claude 会从停止的地方继续。也可以说”继续写 [函数名] 函数”来更精确地指定继续的位置。

Q:Claude 生成的代码和我的项目风格不一致怎么办?
在 System Prompt 或对话开头加入你的代码风格规范,比如”缩进用 Tab、函数命名用 snake_case、所有公共函数必须有类型注解”。或者粘贴一段已有代码作为风格参考,效果更直接。

总结

用 Claude 写代码的本质是:把你脑子里的需求,尽可能完整地传达给它。10个模板涵盖了日常编程的主要场景,初次使用时可以直接套用,熟悉后根据自己的习惯调整。记住最后那5条通用原则,尤其是”让 Claude 审查自己的代码”——这一步能大幅提升最终代码质量,花不了2分钟但效果显著。