Claude Code:简介
Table of Contents
Claude Code 写代码 - This article is part of a series.
Claude Code 系统介绍:面向资深开发者 #
核心定位:这不是 Copilot,是 Agentic CLI #
Claude Code 是一个 agentic CLI(命令行代理),它读取你的代码库、执行命令、修改文件,通过分层的权限系统、hooks、MCP 集成和 subagents 进行工作。本质上它是一个在终端里跑的 while-true 循环:接到任务 → 选工具 → 执行 → 观察结果 → 决定下一步,直到完成或卡住。
和 Copilot/Cursor 的核心差异:它不是自动补全,不是聊天框。它能跨 20 个文件重构、跑测试、修 bug、管理 git workflow,整个过程自主完成。 截至 2026 年 2 月,GitHub 公开 commits 中 4%(约每天 13.5 万)由 Claude Code 产生,Anthropic 自身 90% 的代码是 AI 写的。
架构分层:三层模型 #
整个系统分三层:
Core Layer(核心层):主对话上下文。每条消息、文件读取、工具输出都消耗共享的上下文窗口(标准 200K tokens)。这一层按 token 计费。
Delegation Layer(委托层):Subagents 在全新隔离的上下文里启动,做专注的工作,只把结论摘要返回给主上下文,不污染主会话。
Extension Layer(扩展层):MCP 连接外部服务(数据库、GitHub、Sentry 等);Hooks 保证 shell 命令无论模型行为如何都必然执行;Skills 编码领域专业知识让 Claude 自动应用;Plugins 把这些打包分发。
┌──────────────────────────────────────────────────────┐
│ Extension Layer: MCP · Hooks · Skills · Plugins │
├──────────────────────────────────────────────────────┤
│ Delegation Layer: Subagents(最多 10 个并行) │
├──────────────────────────────────────────────────────┤
│ Core Layer: 主对话 · 工具: Read/Edit/Bash/Glob... │
└──────────────────────────────────────────────────────┘
大多数用户只在 Core Layer 里工作,眼看着上下文膨胀、成本攀升。高级用户把探索性工作推到 Delegation Layer,Extension Layer 配好工作流,Core Layer 只做编排和最终决策。
五大核心系统逐一解析 #
1. CLAUDE.md — 记忆与项目规则 #
这是项目的"宪法",放在项目根目录,Claude 每次启动都读取。你在里面写:
- 项目架构(比如 “这是 Spring Boot + MyBatis + Oracle,MQ 用 IBM MQ”)
- 代码规范(命名、分层、禁止用哪些 API)
- 构建命令、测试命令
- 特定业务规则
对你来说:IOL 项目的 CLAUDE.md 可以写入 VETRO pipeline 约定、EndToEndID 路由规则、inbox/outbox 模式说明,这样每次对话不用重新解释上下文。
2. MCP(Model Context Protocol)— 工具集成协议 #
MCP 让 Claude 连接你的工具链:数据库、GitHub、Sentry 和 3000+ 集成,把 Claude 的能力从读文件和跑 bash 命令扩展到外部系统。
MCP 是个标准协议,本质是运行中的进程暴露工具和数据源给 Claude。
实际工程场景举例:
- 连接 Oracle 数据库 → Claude 直接查
TP_INBOX表分析数据 - 连接 GitHub MCP → 自动创建 PR、写 commit message
- 连接 Sentry → 看到报错直接定位代码
- 连接 IBM MQ → 调试消息队列问题
Skills 可以跨 Claude Code、Codex CLI、Gemini CLI 和 Cursor 使用而无需修改。MCP servers 是暴露工具和数据源给 Claude 的运行中的进程。
3. Hooks — 确定性自动化 #
Hooks 保证自动化和安全检查,是你需要某事每次都执行时使用的机制。
用 hooks(而不是 prompt)处理任何必须执行的事情:lint、格式化、安全检查,这些必须在每次运行时无论模型行为如何都能触发。
Hooks 的触发时机:
| Hook 类型 | 触发时机 |
|---|---|
PreToolUse | 工具调用前(可拦截) |
PostToolUse | 工具调用后 |
MessageDisplay | 消息显示时 |
| Command hooks | slash command 触发时 |
工程实践举例:
- 每次修改 Java 文件后自动跑
mvn checkstyle:check - 每次写完代码自动跑单元测试
- 文件写入前检查是否包含硬编码密码
- 防止修改某些受保护文件(比如 Liquibase changeset 不可回滚的部分)
4. Skills — 可复用的领域知识 #
Skills 有两种:Capability Uplift skills 赋予 Claude 本身没有的能力(如文档生成、浏览器自动化、web scraping);Encoded Preference skills 引导 Claude 按照你团队的特定工作流做已知的事(如 NDA 审查、周报格式)。两类都按需渐进加载,上下文感知触发。
你之前已经实操过了——在 ~/.claude/skills/moomoo/ 下装了 6 个 moomoo skills。
对软件工程的价值:
- 一个 skill 专门处理 Liquibase changeset 命名规范(
TPxxx/TPRxxx/TPOxxx) - 一个 skill 处理 MyBatis mapper 生成套路
- 一个 skill 专门处理 Freemarker/FTL 模板转换规则
- 团队共享:放到项目
.claude/skills/目录里,所有人自动用
Skills 是最简单的扩展机制,也是最便携的:它们是基于 markdown 的轻量级目录,上下文感知触发。
5. Subagents — 并行隔离执行 #
Subagents 在全新隔离的上下文中生成,有各自的工具、权限和持久身份。探索的结果不会膨胀你的主对话;只有结论会返回。
最多支持 10 个并行 subagent。
工程场景:
- 同时让 3 个 subagent 分别分析 AMH flow、NPP flow、BOT flow,结果汇总到主上下文
- 一个 subagent 负责写代码,另一个负责同时写测试
- 大重构时隔离探索,避免污染主对话上下文
6. Plugins — 打包分发的扩展包 #
Plugins 是打包好的 bundle,可以包含 MCP servers、skills、subagents 和 hooks。相当于一个可安装的"开发套件"。
团队协作场景:把你们 IOL 项目的所有规范(skills + hooks + CLAUDE.md 模板)打成一个 plugin,新团队成员 claude plugin install 一下就全套就位。
7. Workflows — 流程编排 #
最新版本(v2.1.150)新增了 /goal 完成循环和 Workflow 工具(CLAUDE_CODE_WORKFLOWS=1 开启)。
Workflows 是把多步骤任务编排成可重复执行的流程,类似 CI/CD pipeline 但是 AI 驱动的:
/workflow feature-dev
→ 读取需求 → 生成方案 → 写代码 → 跑测试 → 创建 PR → 通知
8. Cowork — 桌面非开发者工具 #
Cowork 是面向非开发者的桌面工具,用于自动化文件和任务管理。对你(资深开发者)来说这个不是重点,Claude Code 本身才是主战场。
给你的实践建议 #
基于你的 IOL / Spring Boot / 银行支付系统背景:
第一步:写好 CLAUDE.md — 把 IOL 架构约定(VETRO pipeline、EndToEndID 路由、inbox/outbox 模式)写进去,一劳永逸。
第二步:配置 Hooks — lint 检查、Liquibase changeset 保护、MyBatis mapper 验证,强制执行不可绕过。
第三步:创建项目 Skills — FTL 转换规则、支付消息格式规范、Oracle 查询模板封装为 skills,团队共享。
第四步:用 Subagents 做并行分析 — 复杂需求拆解后多个 agent 并行探索,主上下文只接收结论。
第五步:MCP 接入 Oracle 和 GitHub — 让 Claude 直接查生产数据库排查问题,自动管理 PR 生命周期。