Claude学院

Claude 写代码怎么用?高质量代码生成提示词技巧

用 Claude 写代码,质量高低基本由提示词决定。一句话给结论:在请求里明确写清技术栈版本、约束条件、期望的输出格式,并把相关代码上下文一起喂给模型,Claude Opus 4.8 这类强推理模型就能一次产出可运行、可维护的代码,而不是让你反复返工。下面拆解具体写法,并给出通过 Messages API 和 Claude Code 两种方式的真实示例。

选对模型:代码生成场景该用哪个

目前 Claude 主力模型有三档:Claude Opus 4.8(最强推理,适合架构设计、复杂重构、跨文件理解)、Claude Sonnet 4.6(速度与能力平衡,日常写业务代码的主力)、Claude Haiku 4.5(轻量快速,适合补全、格式转换、批量小任务)。写新功能、调试疑难 bug 优先用 Opus;高频、简单的生成任务用 Sonnet 或 Haiku 更省成本。具体怎么权衡可以看Claude 写代码用哪个模型最划算?实测对比Claude 模型怎么选?Opus / Sonnet / Haiku 选型指南

四类核心提示词技巧

1. 锁定技术栈和版本

不写版本是劣质代码的头号原因。模型会默认用它认为最常见的写法,结果给你 Python 2 的 print、过时的 React 类组件、已废弃的 API。正确做法是把环境约束前置:

技术栈:Python 3.12 + FastAPI 0.115 + SQLAlchemy 2.0(异步写法)
要求:用 async/await,类型注解完整,不要用已废弃的 Query 风格

版本号、框架名、风格偏好越具体,返工越少。

2. 显式声明约束与边界

把"不要做什么"也写出来。例如"不要引入新依赖""错误必须抛自定义异常而非裸 except""函数控制在 40 行内""必须线程安全"。约束是用结构化方式表达最清楚,建议用 XML 标签包裹,详见Claude 提示词 XML 标签用法详解

<task>实现一个带 TTL 的内存缓存类</task>
<constraints>
  - 仅用标准库,不引入 redis
  - 过期键惰性删除
  - get/set 都要加锁保证并发安全
</constraints>
<output>只输出代码和必要注释,不要解释</output>

3. 用 Few-shot 示例统一风格

如果你的项目有固定的命名、注释、错误处理范式,给一两个现有函数当样例,Claude 会照着写。这比文字描述风格高效得多,配合方法见Claude Few-shot 示例怎么用?3 步提升回答准确率

4. 复杂逻辑触发思维链

算法题、状态机、并发逻辑这类问题,加一句"先分析边界情况和数据结构选型,再写代码",能显著降低逻辑错误。原理和写法参考Claude 思维链(CoT)提示词写法

通过 Messages API 生成代码

调用接口为 Messages API(POST /v1/messages,鉴权头 x-api-key + anthropic-version)。Python 用官方 anthropic SDK:

import anthropic

client = anthropic.Anthropic()  # 读取环境变量 ANTHROPIC_API_KEY

message = client.messages.create(
    model="claude-opus-4-8",
    max_tokens=4096,
    system="你是资深 Python 工程师,只输出符合 PEP 8 的可运行代码,附简短中文注释。",
    messages=[
        {
            "role": "user",
            "content": "用 Python 3.12 写一个装饰器,给同步函数加上指数退避重试,最多重试 3 次,可配置异常类型。"
        }
    ],
)
print(message.content[0].text)

Node.js 用 @anthropic-ai/sdk:

import Anthropic from "@anthropic-ai/sdk";

const client = new Anthropic();

const msg = await client.messages.create({
  model: "claude-sonnet-4-6",
  max_tokens: 4096,
  system: "你是 TypeScript 专家,输出严格类型安全的代码。",
  messages: [
    { role: "user", content: "写一个 TypeScript 函数,深度合并两个对象,保留类型推断。" },
  ],
});
console.log(msg.content[0].text);

SDK 安装和 Key 配置可看Anthropic Python SDK 安装与配置完整教程。把 system 当作长期生效的代码规范,把约束放进去比每条 user 消息重复更省 Token。

关键参数对代码质量的影响

参数建议值说明
modelclaude-opus-4-8复杂任务首选,简单任务降级到 Sonnet/Haiku
max_tokens4096+代码长容易被截断,留足空间
temperature0 ~ 0.3代码生成调低,减少随机性和发散
system放编码规范统一风格、约束,全程生效

各参数完整含义见Claude Messages API 全部参数说明。生成大段代码建议开流式输出(SSE),边生成边显示,体验更好,实现见Claude API 流式输出 Python 实现教程

用 Claude Code 在终端里写代码

如果想让 Claude 直接读你的项目文件、改代码、跑测试,用 Anthropic 官方命令行工具 Claude Code 更高效。它能理解整个代码库结构,跨文件修改并自动验证。基本流程:

  1. 安装并登录(见 Windows 安装教程)。
  2. 在项目根目录运行 claude 进入交互模式。
  3. 直接用自然语言下指令,例如"给 utils.py 的所有函数补上类型注解和单元测试"。
  4. 在项目里放一个 CLAUDE.md 文件写明技术栈、目录约定、代码规范,Claude 每次都会读取,相当于持久化的项目级提示词,写法见CLAUDE.md 配置文件怎么写

常用命令清单可参考Claude Code 常用命令大全。需要让 Claude 调用外部工具或数据库时,可通过 MCP(模型上下文协议)扩展能力,配置见Claude Code 配置 MCP 服务器完整步骤

让模型自我修正:错误反馈循环

代码跑不通别重新提问,把完整报错信息和相关代码贴回去,让 Claude 定位。给的上下文越全(错误堆栈、出错行、依赖版本),修复越准。如果模型的输出总是不符合预期,先排查提示词本身的问题,对照Claude 提示词不生效?8 个常见原因和修复方法

常见问题

Claude 写代码会胡编不存在的库或 API 吗?

可能。模型对小众库或最新版本 API 有时会产生幻觉。降低概率的办法:明确指定库版本、要求"只用确定存在的标准库或主流库"、把官方文档片段贴进提示词。更系统的方法见Claude 提示词怎么避免幻觉?实测有效的 5 个方法

写代码用 API 还是 Claude Code 更好?

看场景。一次性生成函数、把模型集成进自己的应用,用 Messages API;要在真实项目里跨文件改代码、跑测试、做重构,用 Claude Code 体验更好,因为它能直接读写文件并自动验证。两者用的是同一批模型,质量一致。

生成的代码总被截断怎么办?

max_tokens 调大(比如 8192),或在提示词里要求"分模块输出,每次只给一个文件"。也可以让 Claude 先输出整体结构和函数签名,再逐个实现,避免单次响应过长。具体计费和 Token 计算逻辑可看Claude API Token 怎么计算,价格具体以 Anthropic 官网为准。

行业应用场景