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-authclaude-worktree feature-paymentclaude-worktree bugfix-memory-leak
# 查看所有worktreegit worktree list
# 清理完成的worktreegit 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 TypeScriptCurrent 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"

为什么不推荐:

  1. 命名冲突 - 覆盖原命令可能导致混淆

  2. 灵活性降低 - 有时你可能需要权限检查功能

  3. 调试困难 - 忘记alias存在时难以排查问题

  4. 团队协作 - 不同环境配置可能导致行为不一致

✅ 更好的做法:

  • 使用配置文件设置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.mdAnalyze and fix GitHub issue #$ARGUMENTS:
1. Run `gh issue view $ARGUMENTS` to understand the issue2. Search codebase for relevant files3. Create a test that reproduces the issue4. Implement the fix5. Verify all tests pass6. Create a PR with:   - Clear description   - Link to issue   - Test evidence

参数化命令高级用法:

# .claude/commands/migrate.mdMigrate $ARGUMENTS following these steps:
1. Analyze current implementation of $ARGUMENTS2. Check migration guide in docs/migration.md3. Create backup branch4. Implement migration incrementally5. Update tests6. Run full test suite7. 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 textdone

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. 团队协作最佳实践

知识共享体系:

  1. 共享CLAUDE.md:记录团队共识

  2. 命令库:复用常见工作流

  3. MCP配置:统一工具集

  4. 会话日志:保存在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%费用

关键成功因素:

  1. 将Claude视为"三年经验工程师"而非工具

  2. 明确、具体的指令胜过模糊请求

  3. 主动管理上下文,不要等待警告

  4. 建立团队标准化流程

  5. 持续迭代和优化工作流

四、
交流会实录(润色版)

开场:从GUI到TUI的心路历程

南川: 我先做个自我介绍。我是公众号"手工川"的主理人,维护着两三个工程师、产品经理、创业者和投资人社群,目前大概有一两千人的规模。

我应该是国内最早一批深度使用AI Coding的践行者。最早我是Windsurf的重度用户,给它充到了最高额度——60美元/月,当时甚至用四个账号轮换。后来也开了Cursor,两个工具互相对比着用。同时我也是ChatGPT和Claude的付费用户。

作为windsurf忠实用户,早期曾申请开通ultimate会员以及中国区代理

作为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时,我有两个技巧:

  1. 给它更多context,教它查看服务器日志,写测试脚本自动化测试

  2. 召唤其他模型协助,用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

受 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

Dify早期通过低代码降低大家调用大模型(各种参数)门槛获取用户,这是它们最新的roadmap: https://roadmap.dify.ai/roadmap

我预测上下文工程还大有可为,甚至可能在国内出现一两家专门做上下文管理的公司并获得融资(口嗨一下:)。

YC 投资被ChatGPT也使用的记忆中间件Mem0: https://github.com/mem0ai/mem0

YC 投资被ChatGPT也使用的记忆中间件Mem0: https://github.com/mem0ai/mem0

凡提及RAG+MCP,必提的 context7,维护者大量代码库的最新文档: https://context7.com/

凡提及RAG+MCP,必提的 context7,维护者大量代码库的最新文档: https://context7.com/

其次,关于工具的思考。我最近开发了Claude Code Manager,可以分析代码仓库、追踪token使用情况。通过 Claude Code Hooks 实现异步数据收集,不影响主线程工作。

https://github.com/MarkShawn2020/claude-code-manager

https://github.com/MarkShawn2020/claude-code-manager

最后,我想说:研究得越早,收益越大。这是极大节省时间成本、心理成本甚至金钱成本的事情。在这个AI重新定义开发效率天花板的时代,我们需要持续探索最佳实践。

五、写在最后:
我们的不足与展望

这次交流让我们认识到,虽然在Claude Code的日常使用上积累了一些经验,但我们的探索还处于早期阶段。

当前的局限:

  • MCP生态理解不深 - 仅停留在基础使用,未深入探索其在企业场景的潜力

  • 缺乏规模化经验 - 多是个人或小团队实践,缺少大型团队协作案例

  • 工程化程度不够 - 还未形成完整的CI/CD集成、代码审查流程

  • 安全实践不足 - 对企业级安全要求的理解和实践还很初步

  • 成本优化有限 - 虽然提到提示缓存,但缺乏系统的成本管理方案

未来探索方向:

  1. 深入MCP生态

    • 探索MCP在企业集成中的应用

    • 开发自定义MCP服务器

    • 建立MCP最佳实践库

  2. 企业级实践

    • 大型团队的协作模式

    • 合规性与审计要求

    • 知识产权保护策略

  3. 工程化提升

    • 完整的DevOps集成方案

    • 自动化测试与质量保障

    • 性能监控与优化体系

  4. Vibe Coding理念深化

    • 从工具使用到开发哲学的转变

    • AI原生的架构设计模式

    • 人机协作的新范式

正如交流中所说:"研究得越早,收益越大。"我们正处在AI重新定义软件开发的早期阶段,每一次探索、每一次分享都在推动这个领域向前发展。


关于下一步:

  • 计划举办更深入的技术研讨会,邀请有企业级实践经验的团队

  • 建立开放的知识共享社区,持续迭代最佳实践

  • 探索更多AI编程工具的可能性,不局限于单一工具

这不是终点,而是一个开始。欢迎更多开发者加入这场探索,一起定义AI时代的编程范式。

本文整理自2025年7月9日"Vibe Coding最佳实践交流会",感谢所有参与者的真诚分享。我们深知还有很长的路要走,但正是这种不断探索的精神,推动着技术社区的进步。


相关资源:

  • Claude Code官方文档

  • 社区最佳实践持续更新中

  • 欢迎提交你的实践经验

#AIcoding #ClaudeCode #VibeCoding #开发效率 #早期探索

Logo

欢迎加入我们的广州开发者社区,与优秀的开发者共同成长!

更多推荐