ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Claude Code 实战:AI 结对编程如何真正提效,把核心能力写进作品集

Claude Code 实战:AI 结对编程如何真正提效,把核心能力写进作品集 1. 为什么我把 Claude Code 当成结对搭档而不是补全工具Claude Code 是 Anthropic 推出的命令行 AI 编程代理能读代码库、拆需求、改文件、跑测试适合已经能写代码但想提升交付速度的开发者。它和普通代码补全最大的区别在于补全只猜下一行Claude Code 会先理解你的项目结构再按你的指令去动多个文件。我把它当结对搭档用是因为它能接住读代码库—拆需求—写实现—跑验证这条完整链路而不是只在你敲到一半时弹个提示。很多人第一次用 Claude Code 会失望觉得它也就那样。问题通常不在模型而在配置和用法没有把 API 通道配好没有给项目写清楚上下文没有把任务拆到它能执行的粒度。这篇就按真实小项目的路径走一遍从 settings.json 骨架和统一 Key 配置起步到需求拆解、代码生成、验证闭环最后把过程整理成作品集里能展示的东西。适合谁看正在评估 Claude Code 的开发者、准备把 AI 结对编程写进简历的人、想用统一 API 通道管理多个模型调用的团队。不适合只想复制一段代码就走的人因为下面大部分内容需要你动手跑。2. 前置准备TaoToken 统一 Key 与 API 通道在配置 Claude Code 之前先把 API 通道这件事解决掉。Claude Code 默认走 Anthropic 官方接口但如果你同时用多个模型或想在团队里统一管理 Key用一个兼容 Anthropic 协议的通道会更省事。TaoToken 提供的就是这种统一入口官网在 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content API 地址是 https://taotoken.net/api 。你需要先拿到一个 API Key。登录后进控制台在 API Keys 页面创建一个复制出来。这个 Key 后面会写进 Claude Code 的环境变量或 settings.json。注意不要把 Key 直接提交到 Git 仓库用环境变量或本地配置文件隔离。Claude Code 读取配置的方式有两种一种是环境变量ANTHROPIC_API_KEY和ANTHROPIC_BASE_URL另一种是项目里的.claude/settings.json。我建议两者结合Key 放环境变量项目级行为放 settings.json。这样换项目时不用改 Key团队协作时也不会把密钥带进仓库。如果你还没装 Claude Code先装 Node.js 18 以上版本然后执行npm install -g anthropic-ai/claude-code装完后运行claude --version确认。如果提示命令找不到检查 npm 全局 bin 目录是否在 PATH 里。这一步踩坑的人不少尤其是用 nvm 管理 Node 的机器全局包路径和系统 PATH 经常对不上。3. 可复制配置settings.json 骨架与项目上下文Claude Code 的配置分两层用户级在~/.claude/settings.json项目级在项目根目录的.claude/settings.json。项目级优先级更高适合放这个项目特有的规则。下面是我常用的骨架你可以直接复制改{ env: { ANTHROPIC_BASE_URL: https://taotoken.net/api, ANTHROPIC_API_KEY: sk-your-key-here }, permissions: { allow: [ Read, Glob, Grep, Edit, Write, Bash(npm run test:*), Bash(npm run lint:*) ], deny: [ Bash(rm -rf:*), Bash(git push:*) ] }, model: claude-sonnet-4-20250514 }几个关键点。env里把 base URL 指向 TaoToken 的 API 地址这样 Claude Code 的所有请求都走统一通道。permissions.allow决定它自动执行哪些操作我一般放开读、搜、改、写和测试命令但把rm -rf和git push放进 deny避免它手滑删库或推错分支。model按你实际可用的模型填不确定就先不写让它用默认。项目上下文比配置更重要。Claude Code 启动时会读项目根目录的CLAUDE.md你可以在这里写清楚项目结构、技术栈、代码规范、常用命令。比如# 项目说明 这是一个 Node.js TypeScript 的 CLI 工具用于统计日志文件中的错误分布。 ## 目录结构 - src/parser.ts 日志解析 - src/aggregator.ts 聚合统计 - src/cli.ts 命令行入口 - tests/ 单元测试 ## 常用命令 - npm run test 跑测试 - npm run lint 检查风格 - npm run build 编译 ## 规范 - 所有导出函数必须有 JSDoc - 错误处理用 Result 类型不抛异常 - 测试覆盖率不低于 80%这份文件写得好Claude Code 生成代码的准确率会明显提升。我试过同一个需求有 CLAUDE.md 和没有改文件次数差了三倍。原因是它不用猜你的约定直接按你写的规则来。4. 真实小项目闭环从需求拆解到验证下面用一个具体项目走完整流程。需求是写一个 CLI 工具读取 Nginx 日志文件统计每个状态码的出现次数按次数降序输出支持--top N参数只显示前 N 个。4.1 需求拆解不要一上来就让 Claude Code 写一个日志统计工具太宽了。先让它拆任务。在项目目录下启动claude输入读一下当前目录结构然后把这个需求拆成可执行的步骤 读取 Nginx 日志统计状态码出现次数按降序输出支持 --top N 参数。 每个步骤说明改哪个文件、做什么、怎么验证。它会先跑 Glob 和 Read 看目录然后给出步骤列表。我实测下来它通常会拆成定义日志解析函数、定义聚合函数、写 CLI 入口、写测试、跑验证。如果拆得太粗你可以追问第三步再拆细一点。4.2 代码生成拆完步骤后让它按步骤实现。我一般一次只让它做一个文件做完确认再下一个。比如按你拆的步骤先实现 src/parser.ts。 输入是日志文件路径输出是状态码数组。 用 Result 类型处理文件不存在的情况。它会生成类似这样的代码import { readFileSync } from fs; export type ResultT, E { ok: true; value: T } | { ok: false; error: E }; export function parseLogFile(path: string): Resultnumber[], string { try { const content readFileSync(path, utf-8); const codes content .split(\n) .filter((line) line.trim().length 0) .map((line) { const match line.match(/\s(\d{3})\s/); return match ? parseInt(match[1], 10) : null; }) .filter((code): code is number code ! null); return { ok: true, value: codes }; } catch (err) { return { ok: false, error: 读取文件失败: ${(err as Error).message} }; } }生成后不要直接信。让它自己解释这段代码的正则为什么这么写边界情况怎么处理。如果日志格式和你的实际文件不一致把真实的一行贴给它让它调整正则。4.3 聚合与 CLI接着实现src/aggregator.ts实现聚合函数输入状态码数组输出按次数降序的 [code, count] 列表。 相同次数按状态码升序排保证输出稳定。再实现src/cli.ts让它支持--top N写 CLI 入口用 process.argv 解析参数。 支持 --top N默认显示全部。 调用 parser 和 aggregator输出格式状态码 次数。4.4 验证闭环代码写完必须验证。让 Claude Code 自己跑跑 npm run build 确认编译通过然后跑 npm run test。 如果测试没覆盖 --top 参数补一个测试用例。它会执行命令、读报错、改代码。这一步是 Claude Code 真正提效的地方它能看到测试失败的具体信息然后定位到哪一行有问题。我实测下来一个中等复杂度的函数从生成到测试通过平均改两到三轮比我自己写快但前提是测试写得清楚。验证通过后让它生成一份简短的 README说明这个工具做什么、怎么用、有哪些参数。这份 README 后面直接进作品集。5. 本篇常见错排查配置和跑流程时下面几个错我踩过或见别人踩过。报错ANTHROPIC_API_KEY not set环境变量没生效。检查echo $ANTHROPIC_API_KEY有没有输出。如果写在.zshrc或.bashrc里记得source一下或重开终端。写在 settings.json 的env里也可以但注意 JSON 不能有注释。报错Connection error或超时base URL 写错了。确认是https://taotoken.net/api不要多加路径或斜杠。如果公司网络有出口限制检查是否能访问这个地址。Claude Code 改了不该改的文件permissions 没配好。把Edit和Write的 allow 范围收窄或者用 deny 排除敏感目录。我一般会在 CLAUDE.md 里写明不要改 config/ 和 migrations/ 下的文件。生成的代码跑不通大概率是 CLAUDE.md 没写清楚技术栈和规范。补上依赖版本、模块系统ESM 还是 CJS、错误处理约定再让它重写。测试一直失败但看不出原因让它把完整报错贴出来然后问这个报错说明哪一行有问题。不要让它盲目重试要让它先解释再改。Key 泄露风险永远不要把 Key 写进提交到 Git 的文件。用.env加.gitignore或者用环境变量。如果已经提交了立刻去控制台吊销重建。6. 把过程沉淀成作品集跑完这个项目你手里有的不只是一段代码。把下面这些东西整理进作品集比写熟悉 Claude Code有说服力得多。第一需求拆解记录。把最初的需求和 Claude Code 拆出的步骤列表放一起说明你怎么判断拆得够不够细。第二关键代码片段和你的修改。挑出它生成后你调整过的地方写清楚为什么改。第三测试结果截图或输出。证明这个东西真的跑通了。第四CLAUDE.md 和 settings.json。展示你如何配置 AI 结对环境这是很多团队正在找的能力。如果你想把这条路径走得更深比如长期用 Claude Code 做编码和 Agent 任务可以看看 Coding Plan 的说明https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 。需要管理多个 Key 或查看用量进控制台https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 。想先验证模型对话效果用模型对话页https://taotoken.net/chat?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 。接入文档在 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content API Keys 管理在 https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 。最后说一个我自己的习惯每完成一个 AI 结对项目花十分钟写一份复盘记下哪些任务它做得好、哪些需要我兜底、配置哪里可以优化。这份复盘积累到五六个项目后就是你面试时讲我怎么用 AI 提效的真实素材比任何概念清单都管用。
返回列表