Vol 51. Claude Code 实战交流与最佳实践
这次交流让我们认识到,虽然在Claude Code的日常使用上积累了一些经验,但我们的探索还处于早期阶段。当前的局限:MCP生态理解不深- 仅停留在基础使用,未深入探索其在企业场景的潜力缺乏规模化经验- 多是个人或小团队实践,缺少大型团队协作案例工程化程度不够- 还未形成完整的CI/CD集成、代码审查流程安全实践不足- 对企业级安全要求的理解和实践还很初步成本优化有限- 虽然提到提示缓存,但缺乏系
Vol 51. Claude Code 实战交流与最佳实践
原创 南川同学 手工川 - AI版 2025年07月09日 23:59
人文与科技
第 51 期
Claude Code实战交流与最佳实践
从Vibe Coding理念出发,记录AI编程工具的真实使用体验与未来展望
作者:南川同学·2025-07-09
#Claude#Code#Vibe#Coding#AI编程#Cursor#Windsurf#上下文工程#MCP#开发者交流#最佳实践#工程效率
从Vibe Coding的理念出发,我们聚焦Claude Code的实际应用,分享早期实践经验,探讨AI辅助编程的未来可能。
一、
背景
2025年7月9日早晨,手工川 邀请了几位正在深度使用AI编程工具的朋友,发起了一场线上交流。原本计划讨论"Vibe Coding最佳实践"这个更宏大的主题,但随着交流深入,大家的焦点自然聚焦到了Claude Code——这个正在改变我们编程方式的工具。
参与者包括独立开发者、技术产品经理、前自动驾驶研发工程师等,共同特征是:都在用AI编程工具交付实际项目,并且对Claude Code有着深度使用经验。
以下是本次的一些摘录与经验汇总,后附润色版原文。
二、
金句摘录
关于工具选择的顿悟
南川: "在绝对的Agent能力面前,那些什么框选段落、Tab键补全这种小的体验优化,在解决问题这个事情上已经一文不值了。这就跟成年后的感受特别深——普通人和天才之间差距就是这么大。"
关于AI的实力评估
Panda: "Claude Code给我的感觉是已经达到一个三年左右工作经验的工程师了。它什么语言都会,各种拳法剑法都会,但是他没有实战经验。你把你的实战经验、工程逻辑、架构思路告诉他,就能干得非常好。"
关于效率提升
Chen: "同时开3-4个项目,这样做感觉一个人可以当几个人用,速度比以前快非常多。"
关于本质认知
thinkthinking: "智能体本质就是context的管理——你在合适的时间给大模型合适的context。"
关于思维转变
追逐清风: "不要把AI当工具,要当成同事或实习生。每个大模型的特点都非常鲜明,你要不断地跟他交流,不断地去探索它。"
关于未来判断
南川: "我觉得上下文工程还大有可为,甚至可能在国内出现一两个做上下文管理的公司拿到融资。"
三、
实战最佳实践
1. 项目配置的艺术:CLAUDE.md文件
核心原则:将CLAUDE.md作为项目的"AI记忆体"
# 项目名称
## 技术栈
- 前端:React 18, TypeScript 5.3, Tailwind CSS 3.4
- 后端:Node.js 20, Express 4.18, PostgreSQL 15
- 测试:Jest 29, React Testing Library 13
## 常用命令
- npm run dev: 启动开发服务器
- npm run typecheck: 运行类型检查
- npm run test:single: 运行单个测试(推荐)
## 编码规范
- 使用ES modules (import/export),不使用CommonJS
- 解构导入:import { foo } from 'bar'
- TypeScript严格模式
- 测试后务必运行typecheck
## 工作流程
- 每次修改后运行typecheck验证
- 优先运行单测,避免全量测试
- PR前确保所有检查通过
CLAUDE.md的层级策略:
-
项目根目录:通用配置(推荐提交到Git)
-
子目录:模块特定配置(monorepo必备)
-
用户目录(~/.claude/CLAUDE.md):个人偏好
-
本地配置(CLAUDE.local.md):私有设置
动态优化技巧:
# 使用#键让Claude自动添加到CLAUDE.md
# 示例:记录新发现的命令或模式
> # Remember to use npm run dev:mobile for mobile testing
2. 工作流选择的精确匹配(官方推荐)
A. 探索→规划→编码→提交(复杂任务首选)
# 步骤1:探索(不写代码)
> read the files that handle logging but don't write any code yet
# 步骤2:深度规划(使用thinking模式)
> think hard about how to implement OAuth2 authentication:
- Current auth system analysis
- Migration strategy
- Security considerations
- Performance impact
# 步骤3:实施
> implement the OAuth2 solution based on your plan
# 步骤4:验证并提交
> verify the implementation works correctly and commit with a detailed message
思维模式递进(官方映射):
-
think
→ 标准思考预算 -
think hard
→ 增加计算时间 -
think harder
→ 深度分析 -
ultrathink
→ 最大思考预算
B. 测试驱动开发(TDD)
# 明确告知TDD模式,避免生成mock实现
> We're doing TDD. Write comprehensive tests for a shopping cart that:
- Handles add/edit/delete with edge cases
- Tests empty cart scenarios
- Validates invalid quantities
DO NOT create any implementation code yet
> run the tests and confirm they fail
> commit the tests
> now implement code to make all tests pass without modifying the tests
C. 视觉驱动开发(UI开发利器)
# 使用截图驱动(支持多种方式)
# 1. 拖拽图片到终端
# 2. 复制图片后Ctrl+V粘贴(注意:Mac上是Ctrl+V,不是Cmd+V)
# 3. 直接引用路径
> implement this design: /path/to/mockup.png
> take a screenshot and compare with the mockup
> iterate until it matches perfectly
3. 多Claude协作模式(企业级实践)
Git Worktrees多任务并行:
# 创建便捷函数
function claude-worktree() {
local branch=$1
git worktree add -b $branch ../$(basename$PWD)-$branch
cd ../$(basename$PWD)-$branch
claude
}
# 使用示例
claude-worktree feature-auth
claude-worktree feature-payment
claude-worktree bugfix-memory-leak
# 查看所有worktree
git worktree list
# 清理完成的worktree
git worktree remove ../project-feature-auth
多Claude验证模式:
# Claude 1: 写代码
> implement the user authentication system
# Claude 2: 代码审查(新终端或/clear)
> review the authentication implementation for security vulnerabilities
# Claude 3: 综合反馈
> based on the code and review feedback, improve the implementation
高级协作框架: 社区中也出现了一些增强框架,如SuperClaude,提供了19个专业命令和9个认知角色(Personas),帮助团队标准化Claude的使用。这类框架特别适合需要:
-
跨团队的一致性工作流
-
特定领域的专业化指导
-
系统化的开发方法论
-
更精细的上下文管理
不过,对于大多数开发者来说,掌握原生Claude Code的核心功能已经足够应对日常开发需求。
4. 高级提示词工程
结构化提示模板(企业验证):
<context>
Working on React e-commerce app with TypeScript
Current focus: Shopping cart optimization
</context>
<constraints>
- Must maintain Redux store compatibility
- Follow existing component patterns
- Maximum bundle size increase: 5KB
- Support IE11 (yes, really)
</constraints>
<task>
Optimize cart calculation performance for 1000+ items
</task>
<success_criteria>
- Calculation time < 100ms
- No UI freezing
- Memory usage stable
</success_criteria>
具体性对比(真实案例):
级别 |
示例 |
效果 |
---|---|---|
差 |
"add tests" |
通用测试,覆盖率低 |
中 |
"add tests for user service" |
基础测试,可能遗漏边界 |
好 |
"write unit tests for UserService.authenticate() covering: null inputs, expired tokens, invalid formats" |
针对性强,覆盖全面 |
最佳 |
"write unit tests for UserService.authenticate() covering edge cases where user is logged out. avoid mocks, use real test database. follow our existing auth.test.ts patterns" |
完美契合项目规范 |
5. 上下文管理的高级技巧
智能上下文优化策略:
# 监控上下文使用
> /context # 查看当前上下文状态
# 在逻辑断点主动压缩
> /compact # 完成功能模块后立即执行
# 任务间清理
> /clear # 切换到新任务前执行
# 会话时长控制
# 最佳实践:30-40分钟后开新会话
文件引用最佳实践:
# 使用@引用避免Claude搜索(节省token)
> explain the auth logic in @src/services/auth.ts
# 引用多文件
> compare @old-auth.ts with @new-auth.ts
# 引用目录结构
> what's the structure of @src/components?
# MCP资源引用
> show me @github:repos/myorg/myrepo/issues
6. 工具权限与安全配置
渐进式权限管理:
// .claude/settings.json (项目级,建议提交Git)
{
"permissions":{
"defaultMode":"bypassPermissions",
"allow":[
"Edit",// 总是允许编辑
"Bash(git commit:*)",// 允许git提交
"Bash(npm run:*)",// 允许npm脚本
"View",// 查看文件
"mcp__puppeteer__*"// Puppeteer所有操作
]
}
}
⚠️ 关于alias的建议
一些自媒体建议创建这样的alias:
# ❌ 不推荐的做法
alias claude="claude --dangerously-skip-permissions"
为什么不推荐:
-
命名冲突 - 覆盖原命令可能导致混淆
-
灵活性降低 - 有时你可能需要权限检查功能
-
调试困难 - 忘记alias存在时难以排查问题
-
团队协作 - 不同环境配置可能导致行为不一致
✅ 更好的做法:
-
使用配置文件设置
defaultMode: "bypassPermissions"
(如上所示) -
或创建不同名称的alias保留选择权:
alias claude-fast="claude --dangerously-skip-permissions"alias claude-safe="claude"# 保留原始行为
-
通过Shift+Tab在会话中切换模式
YOLO模式的安全使用:
# 在Docker容器中使用(推荐)
docker run -it --rm \
-v $(pwd):/workspace \
--network none \ # 无网络访问
node:20 \
bash -c "cd /workspace && claude --dangerously-skip-permissions"
7. 自定义命令系统
项目级命令(.claude/commands/):
# .claude/commands/fix-issue.md
Analyze and fix GitHub issue #$ARGUMENTS:
1. Run `gh issue view $ARGUMENTS` to understand the issue
2. Search codebase for relevant files
3. Create a test that reproduces the issue
4. Implement the fix
5. Verify all tests pass
6. Create a PR with:
- Clear description
- Link to issue
- Test evidence
参数化命令高级用法:
# .claude/commands/migrate.md
Migrate $ARGUMENTS following these steps:
1. Analyze current implementation of $ARGUMENTS
2. Check migration guide in docs/migration.md
3. Create backup branch
4. Implement migration incrementally
5. Update tests
6. Run full test suite
7. Update documentation
8. 企业级自动化模式
CI/CD集成(Headless模式):
# .github/workflows/claude-review.yml
-name:ClaudeCodeReview
run:|
claude -p "Review PR for: \
- Security vulnerabilities \
- Performance issues \
- Code style violations \
- Stale comments \
Output format: filename:line - issue description" \
--output-format stream-json > review.json
批量迁移脚本:
#!/bin/bash
# 批量迁移React类组件到函数组件
find src -name "*.jsx" -type f | whileread file; do
claude -p "Migrate $file from class component to function component with hooks. \
Preserve all functionality. \
Return 'OK' if successful, 'SKIP' if already functional, 'FAIL' if errors." \
--allowedTools Edit "Bash(git commit:*)" \
--output-format text
done
9. 性能优化与成本控制
提示缓存优化(90%成本节省):
// 将稳定内容放在最前面(最多4个缓存断点)
const optimizedPrompt = `
[CACHE_BLOCK_1: PROJECT_CONTEXT]
${projectContext} // 技术栈、规范等
[/CACHE_BLOCK_1]
[CACHE_BLOCK_2: CURRENT_CODE]
${currentCodeContext} // 相关代码文件
[/CACHE_BLOCK_2]
[DYNAMIC_TASK]
${userTask} // 实际任务
[/DYNAMIC_TASK]
`;
使用监控与优化:
# 实时成本监控
> /cost # 查看当前会话成本
# 导出使用数据分析
claude --export-usage > usage-stats.json
# 基于复杂度的模型选择
if [[ $TASK_COMPLEXITY == "high" ]]; then
export CLAUDE_MODEL="claude-3-opus"
else
export CLAUDE_MODEL="claude-3-sonnet"
fi
10. 团队协作最佳实践
知识共享体系:
-
共享CLAUDE.md:记录团队共识
-
命令库:复用常见工作流
-
MCP配置:统一工具集
-
会话日志:保存在progress.md
项目级MCP配置:
// .mcp.json (提交到Git)
{
"servers":{
"puppeteer":{
"command":"npx",
"args":["@modelcontextprotocol/server-puppeteer"]
},
"sentry":{
"command":"npx",
"args":["mcp-server-sentry"],
"env":{
"SENTRY_AUTH_TOKEN":"${SENTRY_AUTH_TOKEN}"
}
}
}
}
11. 调试与问题解决
系统化调试流程:
# 1. 收集完整上下文
> tail -f app.log | claude -p "Analyze performance anomalies in real-time"
# 2. 根因分析
> think hard about why this memory leak might be occurring based on:
- Error patterns in the logs
- Recent code changes
- System resource usage
# 3. 多模型协作(通过MCP)
> use MCP to get perspectives from DeepSeek-R1 and GPT-4 on this issue
# 4. 验证修复
> implement the fix and write a test that would have caught this issue
12. 真实世界的成功指标
企业案例数据:
-
Incident.io:工程师生产力提升10倍
-
Anthropic内部:90%+ Git操作通过Claude
-
社区报告:2-3小时构建生产级应用
-
成本优化:提示缓存降低90%费用
关键成功因素:
-
将Claude视为"三年经验工程师"而非工具
-
明确、具体的指令胜过模糊请求
-
主动管理上下文,不要等待警告
-
建立团队标准化流程
-
持续迭代和优化工作流
四、
交流会实录(润色版)
开场:从GUI到TUI的心路历程
南川: 我先做个自我介绍。我是公众号"手工川"的主理人,维护着两三个工程师、产品经理、创业者和投资人社群,目前大概有一两千人的规模。
我应该是国内最早一批深度使用AI Coding的践行者。最早我是Windsurf的重度用户,给它充到了最高额度——60美元/月,当时甚至用四个账号轮换。后来也开了Cursor,两个工具互相对比着用。同时我也是ChatGPT和Claude的付费用户。
作为windsurf忠实用户,早期曾申请开通ultimate会员以及中国区代理
但现在,我已经完全转向Claude Code了,每月充值200美元,并且把Cursor和Windsurf都退订了。
这个转变背后有个重要的认知转折。最初我确实没有第一时间重视Claude Code,这是我的认知局限。当时我的想法受《人月神话》影响——软件产品有两个发展方向:横向增加功能,纵向增加界面。我认为像Windsurf这种有GUI的工具价值更高,比如可以框选代码片段发送对话,预览界面时可以选中元素直接分析源码,这些体验确实很棒。
《人月神话》中关于编程系统产品的象限图
但后来一件事让我彻底改观:Claude Code的Agent能力实在太强了。我认为它是目前全球最强的AI编程Agent,没有之一。
以前选择Windsurf,是因为它的上下文管理比Cursor领先一个段位。但在Claude Code绝对的Agent能力面前,那些GUI优化、Tab补全这些小的体验提升,在解决实际问题上已经变得一文不值了。这就像成年后深刻体会到的——普通人和天才之间的差距就是这么大。
注:据说Augment Code[1] 现在更强了,我还要深入体验才能给出答案,目前claude code基本能满足我的需求~
重构与工作流的最佳实践
Panda: 我简单分享一下。我是GPT发布后第二周就注册使用的早期用户。最初GPT写代码只能写些简单的排序算法,复杂业务逻辑根本不行。直到Claude 3.5 Sonnet出来,能力才有了质的飞跃,基本达到大三大四学生的水平。
而Claude Code给我的感觉是已经达到三年工作经验的工程师水平。它什么语言都会,各种"拳法剑法"都懂,但缺乏实战经验。你需要把工程逻辑、架构思路告诉它,它就能干得非常好。
我最近用它做了几个项目。比如一个八字命理计算系统,包括四柱八字、十神、神煞等复杂算法。以前我自己写需要三四天,还不能保证没有bug。这次我整理好文档和逻辑给Claude Code,一个小时就完成了,交叉测试基本没什么问题。
对于重构项目,效果更好。我重构过一个十万行代码的项目,关键是要把Claude Code当成一个人来沟通,而不是工具。告诉它项目背景、遇到的问题、期望的帮助,它还会给出规划和建议。
遇到疑难bug时,我有两个技巧:
-
给它更多context,教它查看服务器日志,写测试脚本自动化测试
-
召唤其他模型协助,用MCP调用DeepSeek-R1、GPT-4、Gemini Pro一起讨论,往往能找到新思路
南川: 关于重构,我想补充一下Claude官方的最佳实践文档。里面提到了几种工作流:
第一种是"探索→规划→编码→提交",这符合传统软件工程的瀑布流开发。适合大公司的协同开发,但对普通人来说可能过于严格。
第二种是测试驱动开发,最稳健但对普通人来说不够敏捷。
第三种是"先写代码→出错→截图给AI→迭代"的快速迭代模式。这是目前的主流,也是大多数AI产品采用的方式。
对于重构,特别推荐使用Plan Mode。开启后Claude会变得谨慎,花更多时间思考问题复杂度、主动检索信息、理清代码关系。虽然它可能达不到o1的水平,但也有其40-60%的能力。
上下文管理的艺术
thinkthinking: 我之前是做自动驾驶研发的,后来转做技术产品经理。用Windsurf两个月,独自交付了一个企业级SaaS产品——智能体开发平台,包括技能编排、市场分享、多租户等完整功能。
我想分享一个上下文管理的小技巧。我写了一个脚本,自动将外部项目拉取到.reference
目录下,同时添加到.gitignore
中。这样既能方便引用外部代码,又不会破坏当前项目的indexing。
本质上,智能体就是context的管理——在合适的时间给大模型合适的context。
南川: 这个方法很有意思!我也做过类似的事情,不过我用的是软链接。在根目录创建一个rag
文件夹,按公司分类存放常用文档,比如字节的、百度的、Google的。然后在项目中用ln -s
创建软链接引用。
受 thinkthingking启发,后续我的 rag 文件夹应该可以做的更加系统化,比如直接拉取几个常用的doc base
这样做有个好处是可以跨项目复用知识库。不过要注意,如果是Next.js项目,部署时需要在tsconfig.json
中exclude这些外部链接。
另外,像Anthropic的文档已经提供了"Copy Page"和"Open in Claude"功能,这种AI-friendly的设计值得国内产品学习。相比之下,国内还在纠结"数据安全"问题。
多项目并行与效率提升
Chen: 我最近几天才切换到Claude Code,昨天开始尝试多项目并行模式。同时开3-4个项目,在Plan阶段与Claude深度配合,规划好后让它执行。执行需要等待时,我就切换到另一个项目继续工作。
这样一个人可以当几个人用,效率比以前快非常多。目前我觉得3-4个项目是上限,再多的话自己的上下文切换会比较累。
南川: 我来演示一下我的多窗口工作方式。我用iTerm2,每个项目开一个标签页,然后分屏——右边是Claude Code,左边是代码编辑。如果是Web项目,会再横向分屏,上面运行实时预览。
通常3个项目以内比较合适,超过3个容易混乱。如果涉及debug,2个项目可能就是极限了。我有时会开7-8个窗口,通过观察哪个AI在转圈(正在工作)来切换关注点。
配置技巧:在~/.claude/settings.json
中设置默认bypass模式:
{
"permissions":{
"defaultMode":"bypassPermissions"
}
}
思维模式的转变
追逐清风: 我是个"老码农"了,最近几年主要做项目和商务对接,但还是会写代码。
我认为不应该把AI当作简单的工具,而要当成同事或实习生。每个大模型都有鲜明的特点和差异化的功能。比如debug时,有时候换个模型就能迎刃而解——我在Cursor里用Claude解决不了的问题,换成o1或DeepSeek有时就能解决。
关于提示词工程,我推荐 PDCA(Plan-Do-Check-Act) 的思路,用流程化思维迭代优化。重要的是要层次化、渐进化——从大到小,不要太跳跃。就像写议论文一样,先总后分,这样才能找到适合自己的方法。
关于未来的思考
南川: 通过今天的交流,我更加确信几点:
首先,上下文工程的重要性。早期大家研究参数调优,后来追求模型智商,现在模型智商趋于稳定(130-150的水平),差异不大了。这时候,如何给"聪明人"问对问题、给足信息就成了关键。
Dify早期通过低代码降低大家调用大模型(各种参数)门槛获取用户,这是它们最新的roadmap: https://roadmap.dify.ai/roadmap
我预测上下文工程还大有可为,甚至可能在国内出现一两家专门做上下文管理的公司并获得融资(口嗨一下:)。
YC 投资被ChatGPT也使用的记忆中间件Mem0: https://github.com/mem0ai/mem0
凡提及RAG+MCP,必提的 context7,维护者大量代码库的最新文档: https://context7.com/
其次,关于工具的思考。我最近开发了Claude Code Manager,可以分析代码仓库、追踪token使用情况。通过 Claude Code Hooks 实现异步数据收集,不影响主线程工作。
https://github.com/MarkShawn2020/claude-code-manager
最后,我想说:研究得越早,收益越大。这是极大节省时间成本、心理成本甚至金钱成本的事情。在这个AI重新定义开发效率天花板的时代,我们需要持续探索最佳实践。
五、写在最后:
我们的不足与展望
这次交流让我们认识到,虽然在Claude Code的日常使用上积累了一些经验,但我们的探索还处于早期阶段。
当前的局限:
-
MCP生态理解不深 - 仅停留在基础使用,未深入探索其在企业场景的潜力
-
缺乏规模化经验 - 多是个人或小团队实践,缺少大型团队协作案例
-
工程化程度不够 - 还未形成完整的CI/CD集成、代码审查流程
-
安全实践不足 - 对企业级安全要求的理解和实践还很初步
-
成本优化有限 - 虽然提到提示缓存,但缺乏系统的成本管理方案
未来探索方向:
-
深入MCP生态
-
探索MCP在企业集成中的应用
-
开发自定义MCP服务器
-
建立MCP最佳实践库
-
-
企业级实践
-
大型团队的协作模式
-
合规性与审计要求
-
知识产权保护策略
-
-
工程化提升
-
完整的DevOps集成方案
-
自动化测试与质量保障
-
性能监控与优化体系
-
-
Vibe Coding理念深化
-
从工具使用到开发哲学的转变
-
AI原生的架构设计模式
-
人机协作的新范式
-
正如交流中所说:"研究得越早,收益越大。"我们正处在AI重新定义软件开发的早期阶段,每一次探索、每一次分享都在推动这个领域向前发展。
关于下一步:
-
计划举办更深入的技术研讨会,邀请有企业级实践经验的团队
-
建立开放的知识共享社区,持续迭代最佳实践
-
探索更多AI编程工具的可能性,不局限于单一工具
这不是终点,而是一个开始。欢迎更多开发者加入这场探索,一起定义AI时代的编程范式。
本文整理自2025年7月9日"Vibe Coding最佳实践交流会",感谢所有参与者的真诚分享。我们深知还有很长的路要走,但正是这种不断探索的精神,推动着技术社区的进步。
相关资源:
-
Claude Code官方文档
-
社区最佳实践持续更新中
-
欢迎提交你的实践经验
#AIcoding #ClaudeCode #VibeCoding #开发效率 #早期探索
更多推荐
所有评论(0)