[控场AI]
· 11 分钟阅读· 5,623 字

Claude Code实战:AI编程从安装到全栈项目开发

Claude Code实战:AI编程从安装到全栈项目开发

Claude Code 实战课程:从安装配置到全栈项目开发的代理式编程方法论。

本文基于 Mosh Hamadani 的 Claude Code 双语课程,系统梳理了这一代理式编程工具从理念到落地的完整路径。文章先厘清 Claude Code 与传统对话式 AI 助手的本质差异——它能读写文件、执行命令、提交 Git,自主完成多步骤任务;随后回应“AI 是否取代工程师”的疑问,指出改变的是工具而非工程基础。实操层面覆盖了安装配置、`!` `@` `/` `&` 等基础前缀、权限管理、CLAUDE.md 项目记忆、提示词四法则,并通过修 Bug 与组件重构演示“审查每一行生成代码、识别治标还是治本”的方法论。文章还详解了 Plan Mode、上下文窗口管理与 MCP 扩展机制,强调把大功能拆小、只装必要的 MCP Server。

Claude Code实战:AI编程从安装到全栈项目开发

AI编程工具正在重塑软件开发的方式。据Anthropic透露,其内部工程师已经用Claude Code编写高达90%的代码。拥有20多年开发经验的软件工程师Mosh Hamadani在B站发布了一套双语字幕课程,完整演示了如何用Claude Code从零构建并部署一个生产级的全栈AI工单系统。本文基于该课程内容,梳理Claude Code的核心理念、安装配置流程与关键使用技巧。

Claude Code到底是什么

Claude Code被定义为一种“代理式编程工具”(agentic coding tool)。传统AI助手是对话式的:你提问、它回答、你复制粘贴。而编程代理的不同之处在于,它拥有可执行动作的工具——能读取文件、写入代码、运行命令、修复Bug、提交Git变更,自主完成多步骤任务。

它运行在终端里,这意味着编辑器无关性,同时对VS Code和JetBrains等主流IDE有良好集成。据课程介绍,Netflix、Spotify、Uber、Salesforce等大公司已在生产环境中使用Claude Code。Google Trends数据显示其关注度在过去一年急剧攀升,甚至出现在部分招聘岗位的要求中。

Claude Code可用于创建代码

代理式编程(Agentic Coding) 是相对于传统“对话式 AI 助手”的一个范式区分。对话式助手只能产出文本建议,人类必须承担复制、粘贴、执行、验证的全部环节;而代理式系统在模型之外还挂载了一组可调用的工具(tools),每个工具对应一个可执行的外部动作,例如读文件、写文件、运行 shell 命令、调用 Git。模型在推理过程中输出的是“工具调用请求”,由宿主程序执行后把结果回传给模型,模型再据此决定下一步。这一“推理—行动—观察”的循环可以自动重复多轮,直到任务完成。因此代理的能力上限不仅取决于模型本身,还取决于它被授予了哪些工具、以及权限边界如何设定——这也是后文权限管理机制存在的根本原因。

AI会取代软件工程师吗

Mosh在课程中用一个比喻回应了这个问题:电锯的发明并没有让木匠失业,而是让他们更快、更精确、更省力地完成工作。锯木头只是木匠工作中的一环,就像写代码只是软件工程中的一环。

他的核心观点是:软件工程的基础不会消失,改变的是工具。从文本编辑器到IDE,从手动部署到CI/CD,从裸写SQL到ORM——每一代开发者都会获得新工具,而早期拥抱者获得先发优势。但理解代码的能力反而变得更加重要,因为你的角色从“写代码”转向“评估代码”。

安装与环境配置

Claude Code提供两种付费方式:订阅制(Pro/Max套餐,固定月费)和API按量计费。Mosh本人从Pro起步,因用量大很快触顶,转而使用Max套餐并强烈推荐。他特别声明自己并非Anthropic的推广合作方。

安装过程不复杂:访问官方文档页面,根据操作系统选择对应命令(Mac/Linux/WSL用curl,Windows用PowerShell或CMD),在终端执行即可。需要留意安装输出中的PATH警告——如果提示需要将claude加入PATH,务必执行提示的命令,否则后续运行会报“command not found”。

安装完成后首次运行需登录,订阅用户用Claude账号,API用户用Anthropic Console账号。在VS Code中使用时,建议将终端面板移到左侧,让提示词输入区和代码区左右分屏,操作体验更佳。

多行提示词输入技巧

必须掌握的基础操作

Claude Code的交互围绕几个快捷前缀展开:! 进入Bash模式直接执行Shell命令,@ 引用文件为代理提供上下文,/ 调用内置斜杠命令,& 运行后台任务。按 ? 可查看完整快捷键列表。

几个值得立即配置的点:

  • /terminal-setup:安装Shift+Enter换行绑定,编写多行提示词时比每行末尾加反斜杠优雅得多。
  • /model:切换模型,课程录制时默认是Opus 4.5,另有Sonnet和Haiku可选。
  • /tasks:查看后台运行的任务,按k可终止。
  • /init:生成项目专属的CLAUDE.md记忆文件。

权限管理是另一个关键机制。当Claude请求使用工具(如执行npm install)时,会给出三个选项:仅允许一次、本次会话始终允许、拒绝。对于安全命令(如启动开发服务器),选择“始终允许”能显著提升效率;对于危险操作则要保持警惕。文件编辑同样建议选择“本次会话允许所有编辑”,之后通过Git源码管理面板逐文件审查变更。

CLAUDE.md:项目的长期记忆

执行 /init 后,Claude会分析代码库并生成CLAUDE.md文件,内容涵盖项目基本命令(dev/build/lint)、架构描述和代码约定。这个文件在每次请求时都会被载入上下文窗口,相当于项目的“长期记忆”。

这里有一个重要的工程习惯:当项目架构发生变化时,要主动更新CLAUDE.md。课程中演示了重构App.jsx后,用一句“update claude.md and include architectural changes”让代理同步更新组件结构描述,从而让后续的代码修改更准确。

需要注意的是,大语言模型是非确定性的,每次运行 /init 的输出都不同。Mosh建议学习者不要纠结于具体内容,而应关注整体工作流——如何拆解任务、如何从错误中恢复。

提示词的四条实用法则

课程给出的提示词原则简洁有效:

  1. 清晰具体:不要说“加认证”,而要说“用现有的user模型给登录端点加JWT认证”。
  2. 提供上下文:把代理需要知道的代码、文件、库、约束提前说清楚,别让它猜。
  3. 简洁:不要在提示词里写小作文,越短越清晰输出越好。
  4. 别把它当同事寒暄:Claude是编程代理,不需要“你好,能否请你帮忙……”这类客套。

实战:修Bug与重构的正确姿势

课程用一个有Bug的React记账应用作为练习场。第一个Bug是总收入与总支出计算错误。Mosh给出的提示词是“in @app.jsx, total income and expense are not calculated correctly. Fix it.”

Claude的修复方式是在计算时把amount转成float。但Mosh指出这不是正确的修法——数据源里amount本来就是字符串,每次使用都要解析,这是治标不治本。于是他追加提示:“in transactions array, amount should be a number.” 代理随即修改了数据结构,Bug被根治。

这个细节揭示了AI编程的核心方法论:审查AI生成的每一行代码,识别它是在治标还是治本。

重构环节同样体现了这种思路。让Claude把Summary抽成独立组件后,代理给了它三个props(totalIncome、expenses、balance),但计算逻辑仍留在App里。Mosh追加提示把计算逻辑移入Summary组件内部,最终组件只有一个prop,设计更合理。

重构组件结构

他特别强调:在项目初期用小块任务建立代码模式,让代理学习并遵循统一的写法。如果一次性给太大块的工作,代理可能在应用不同部分使用不一致的模式,最终失控。

计划模式:避免“氛围编程”陷阱

Plan Mode(按Shift+Tab切换)用于开发新功能。代理会先读取代码库、分析架构、草拟实现计划,在获得批准前不改动任何代码。课程演示了“添加删除交易功能”的完整流程:计划中明确了App.jsx新增handleDeleteTransaction函数、TransactionList增加onDeleteTransaction prop和操作列、CSS无需改动,并列出验证步骤。

对计划不满意可以要求修改。Mosh追加了“add a confirmation dialog box”,代理随即更新了按钮点击逻辑,加入确认弹窗。批准执行后约50秒完成功能,浏览器验证通过,删除交易后汇总数字正确更新。

验证删除功能

这里的原则是:把大功能拆成小功能,否则代理一次改动几十上百个文件,你根本无法有效审查,就会掉进“氛围编程”的陷阱。

上下文窗口管理:控制成本的关键

用 /context 可以可视化上下文使用情况。Claude Code的上下文窗口为200K tokens,一个token约等于四分之三个单词。课程演示时已用24%,其中系统提示占1%,消息历史占14%。

上下文填满后,代理会开始幻觉、遗忘、输出质量下降。两条应对策略:

  • 切换不相关任务时:用 /clear 清空对话。
  • 相关任务但上下文渐满时:用 /compact 压缩对话,保留摘要。演示中压缩后占用从24%降至13%,清空后仍有10%被系统提示、工具和CLAUDE.md占据。

上下文窗口与成本直接相关:每次发消息,系统提示、CLAUDE.md和全部对话历史都会作为输入token发送。因此要保持CLAUDE.md精简,删掉过时内容。用量方面,订阅用户用 /usage 查看套餐消耗,API用户用 /cost 查看费用。

上下文窗口(Context Window) 指模型在一次请求中能同时“看到”的 token 总量上限,包括系统提示、工具定义、CLAUDE.md、历史对话和当次输入。它不同于模型的训练知识,是一次性、易失的工作记忆。大语言模型的注意力成本随 token 数增长,且超出窗口的内容会被直接截断,因此长会话中早期信息可能被无声丢弃,表现为“遗忘”此前约定。/compact 的做法是让模型把已有对话总结为一段摘要再放回窗口,用有损压缩换取空间;/clear 则是彻底重置。理解窗口的有限性,是把 AI 编程从“随便聊”变成可工程化控成本的前提。

MCP:给代理装上外部工具

MCP(Model Context Protocol)解决的是集成扩展问题。没有MCP时,每家AI厂商都要为GitHub、Slack、Postgres分别写定制代码并持续维护,只有厂商自己能添加集成,外部API一变所有厂商都得改。

MCP引入两个角色:MCP Server封装外部服务的复杂性(认证、消息格式),API变化时只需更新Server;MCP Client内嵌在Claude Code这类宿主应用中,用标准JSON格式与任何Server通信。启动时宿主询问各Server“你有哪些工具”,之后代理便知道该调用哪个。类比来说,Chrome不需要为每个网站写定制代码,它用HTTP协议就能访问任何网站。

现成的MCP Server覆盖GitHub、Slack、Postgres、Playwright(浏览器测试)、Google Drive、Sentry(错误日志)等数百种服务。但Mosh给出了务实建议:每个注册的MCP Server都会把工具塞进上下文窗口,增加成本并可能让代理选择困难,只装真正需要的。

Model Context Protocol(MCP) 是 Anthropic 于 2024 年底提出的开放协议,用于标准化“AI 应用”与“外部数据源/工具”之间的连接方式。它在设计上借鉴了 Language Server Protocol(LSP)的思路:LSP 让任意编辑器与任意编程语言的分析器解耦,MCP 则让任意宿主应用与任意外部服务解耦。协议基于 JSON-RPC 通信,定义了工具(tools)、资源(resources)、提示模板(prompts)三类原语。由于协议开源,除 Claude Code 外,其他 AI 客户端与 IDE 也在逐步支持,这使得同一个 MCP Server 可以被多个宿主复用。理解这一点有助于把握 MCP 的定位:它不是某个产品的私有插件机制,而是试图成为 AI 工具集成领域的通用接口层。

课程全貌与学习建议

完整课程约9小时,B站视频是第一小时的内容。后续章节将逐步构建一个生产级全栈工单系统:认证与角色权限、工单CRUD与测试、AI回复润色、长对话摘要、自动分类、基于知识库的自动解决工单、邮件集成,最后Docker化部署到云端,并配置GitHub Actions让Claude自动修复Issue、合并后触发生产部署。

Mosh用Claude Code约两个工作日完成了这个项目,而手动开发加全部测试至少需要两到三周。但他反复强调:这不是“睡觉时50个AI代理帮你建应用”的课程,而是真正的软件工程课——每一行AI生成的代码都要审查、重构、配上数百个自动化测试。

对于想跟上节奏的学习者,他的建议很直接:不要被动观看,每节课都打开编辑器和终端跟着敲。就像学骑车,看再多视频也不如自己骑上去。

分享:

相关推荐