📌 内容摘要
- 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分钟但效果显著。