了解了cursor的基本使用之后,我又简要的学习了claude code,由于时间有限,大概花费了一天(约4小时)的时间,对claude code进行了简单的学习和体验。下面是我关于claude code 的学习笔记。Claude Code本质上是一个运行在命令行中的AI助手,基于Claude模型提供智能交互能力。与传统开发工具相比,它的核心设计理念是以终端为中心的全栈智能体工作流。先看一下claude code和cursor的工作流差异 | | |
| 终端对话式交互,开发者通过自然语言描述任务,AI自主规划和执行 | IDE内嵌式交互,通过快捷键、聊天窗口和代码编辑器直接集成 |
| 通过CLAUDE.md文件作为项目的“长期记忆”和“技术宪章”,支持动态加载和智能压缩 | 通过@符号结构化引用项目文件、代码片段和文档,支持精准上下文控制 |
| 高度自动化,能够自主执行复杂任务链,包括文件操作、命令执行、Git工作流等 | 中度自动化,在开发者指导下执行任务,需要人工确认和干预 |
| 通过MCP连接外部服务,扩展访问数据库、文件系统和API的能力 | 通过Skills系统和自定义规则扩展功能,支持团队协作和个性化配置 |
Claude Code的最佳场景
- 全栈开发任务:需要跨多个技术栈和文件协调的复杂任务
- DevOps自动化:部署、测试、监控等自动化工作流
- 大型项目重构:需要深度理解整个代码库架构的改造任务
- 团队协作标准化:通过共享CLAUDE.md文件统一团队工作流
Cursor的最佳场景
claude code权限模式
Claude Code定义了六种权限模式,每种模式针对不同的使用场景和风险偏好。1 默认模式(Default)
标准交互模式,是Claude Code的起点配置。在此模式下,系统按规则检查所有操作,对于规则未明确规定的操作会询问用户确认。这种模式在安全与速度之间取得了良好平衡,适合新手用户和不确定的环境。
2 绕过权限模式(BypassPermissions)
完全放行模式,所有请求直接通过,无需任何检查。这种模式极其危险,只应在完全信任的任务或受控环境中使用。例如在无网络连接的Docker容器中,可以使用--dangerously-skip-permissions参数启用此模式。社区实践中,常将此模式与测试驱动开发(TDD)结合:先编写失败测试,提交测试,然后在YOLO模式下实现功能。
3 自动接受编辑模式(AcceptEdits)
“实时编码”模式,自动接受文件编辑操作而无需提示,但其他操作仍需检查。这种模式非常适合快速迭代和密切监督的开发场景,能够显著提升文件操作的效率。用户可以在.claude/settings.json中设置defaultMode: "acceptEdits",或使用--permission-mode标志为单次会话指定此模式。4 计划模式(Plan)
只读分析模式,Claude可以分析和讨论代码,但不能修改任何文件或执行命令。这种模式专为代码审查、架构分析等任务设计,提供了一个安全的“沙盒”环境,让AI能够深入理解代码而不产生实际影响。5 智能不询问模式(DontAsk)
智能自动决策模式,这是Claude Code权限系统中最有趣的设计之一。在此模式下,系统会根据操作的危险程度自动判断:这种模式体现了Claude Code对“上下文感知权限”的追求,能够根据操作的具体环境和潜在风险做出智能决策。6 委托模式(Delegate)
企业级集成模式,将权限决策交给外部规则引擎。这种模式专为需要集成企业级权限系统的场景设计,如金融、医疗等对安全要求极高的行业。通过委托模式,Claude Code可以与现有的RBAC(基于角色的访问控制)、ABAC(基于属性的访问控制)等系统无缝集成。斜杠命令(Slash Commands)
在Claude Code的智能编程生态中,斜杠命令(Slash Commands) 构成了其最核心的交互界面和工作流自动化引擎。这些以/开头的命令不仅仅是简单的快捷方式,而是将复杂的开发流程封装为可预测、可复用的自动化工具链。
斜杠命令是Claude Code的快捷入口和自动化工作流引擎,通过简单的/command语法快速触发特定功能。这种设计借鉴了现代开发工具的最佳实践,强调简洁性(单一命令完成复杂任务)、一致性(统一命令格式和参数传递)、可扩展性(支持自定义命令和团队协作)以及上下文感知(命令能够理解当前项目状态和开发环境)。
接下来详解一下斜杠命令的分类和作用
1.账户与环境管理命令
这类命令帮助管理Claude Code的基本配置和工作环境:
/login & /logout:切换或登录/退出Anthropic账户,适用于多账户管理和团队协作场景
/config:查看和修改配置设置,包括API密钥、模型选择、权限设置、MCP服务器等。支持交互式配置菜单,也可通过子命令直接设置,如/config set autocompact off
/permissions:管理工具权限,提供交互式UI界面查看和配置命令权限。界面顶部显示Allow、Ask、Deny三种权限类别,可通过←/→或Tab键切换
/status:查看系统和账户状态,包括工作目录、登录账户、所用模型、加载的项目记忆等。这是一条只读命令,不会更改任何设置,是排查问题的起点
/model:选择或更改AI模型,支持在Sonnet、Opus、Haiku等模型间切换。例如/model opus切换到Opus(最强模型),/model sonnet切换到Sonnet(平衡模型),/model haiku切换到Haiku(最快模型)
2 项目与内存管理命令
这些命令专注于项目层面的配置和上下文管理:
/init:项目初始化命令,是新手使用Claude Code的"救命稻草"。运行此命令会扫描当前项目代码库,在项目根目录生成CLAUDE.md文件作为项目的"知识指南"。它会自动分析项目结构,检测技术栈(语言、框架)、识别构建工具、发现目录结构,并生成基础规则。建议在打开任何项目文件夹后第一件事就执行/init,相当于给Claude装上"项目雷达"
/memory:编辑项目记忆文件,直接打开并编辑当前项目的持久记忆文件CLAUDE.md(或用户级别的全局记忆文件)。通过此命令可以随时更新项目文档内容,如添加关键业务术语解释、更新架构说明等
/add-dir:添加额外工作目录,让Claude同时关注其他目录代码,打通上下文。适用于全栈开发需联调前后端时,命令语法为/add-dir <你的工作目录>
/clear:清除对话历史,使Claude忘记之前的所有对话内容。执行后相当于开启一个新会话,但不会退出Claude Code界面。当对话持续很久、上下文累积过多时,可以使用/clear来重置上下文窗口,保持思路清晰
/compact:压缩对话内容,将当前对话历史总结压缩,并以该摘要作为新对话的开场上下文。可选的instructions参数允许指定压缩时的侧重点,例如/compact "保留尚未解决的问题"会让Claude在总结时侧重未解决问题部分。当会话长度接近模型上下文长度上限时,/compact是延续长对话的救星
3 开发与调试工具命令
核心的开发辅助命令,提升日常编码效率:
/review:代码审查命令,让Claude化身专家,揪Bug、提优化。适用于合并关键代码到主分支时,需要"第二双眼睛"进行代码质量保证和同行评审。命令可以接收文件路径参数,如/review src/main/java/Service.java
/bug:报告问题给Anthropic,用于问题反馈和产品改进
/doctor:检查安装健康状态,诊断Claude Code安装配置问题。当功能异常,怀疑是环境问题时使用
/pr_comments:查看拉取请求评论,汇总代码拉取请求(Pull Request)的团队反馈。适用于提交PR后,想快速了解队友意见
/vim:进入vim编辑模式,支持高效文本编辑和键盘操作
4 监控与分析命令
帮助你了解使用情况和优化工作流:
/cost:费用管理专家命令,实时查看本次对话Token消耗及费用。显示当前会话的令牌使用量统计,包括提示和回答分别用了多少token,以及预估的API消耗费用。定期检查此命令有助于控制成本,防止超标。看到费用飙升时,可以立即使用/compact压缩或/clear重启对话
/help:万能帮助命令,查询所有命令用法,探索隐藏功能。当忘记命令或想挖掘新技巧时使用
2.5 高级集成命令
解锁进阶玩法的命令:
/mcp:外部工具连接命令,连接GitHub、数据库等外部服务,扩展能力边界。适用于需要Claude直接操作仓库或查询数据时。MCP(Model Context Protocol)权限使用不同的语法,如mcp__puppeteer匹配puppeteer服务器提供的任何工具
还有自定义命令的玩法,这些都是进阶的技能还没学习,暂时只学了这些东西命令。
CLAUDE.md
提到Claude Code使用,CLAUDE.md会是一个绕不开的内容,它是 Claude Code 的“项目记忆文件”或“项目说明书”。它本质上是一个特殊的 Markdown 配置文件,Claude Code 在每次启动对话时都会自动读取其内容并加载到上下文中。Claude Code 作为一款革命性的终端 AI 编程工具,其核心功能之一便是通过 CLAUDE.md 文件为 AI 提供持久化的项目记忆。这个看似简单的 Markdown 文件,实际上构成了 Claude Code 理解项目、遵循规范、高效协作的“大脑”和“知识库”。
在没有 CLAUDE.md 的情况下,开发者每次与 Claude Code 开始新对话时,都需要重复解释项目结构、编码规范、构建命令等基础信息,就像和一个患了“健忘症”的助手工作一样,效率极低。这种“失忆症”表现为:术语混乱、格式不一致、角色错位、遗忘约定等。CLAUDE.md 正是治愈这一“失忆症”的药方,它让 Claude 能够记住项目的所有重要约定,确保每次协作都从“对齐的上下文”开始。
Claude Code 采用了一套智能的分层记忆管理系统,确保配置的灵活性与优先级,系统会按照从低到高的优先级顺序,从多个可能的位置加载 CLAUDE.md 文件:
| | |
用户级(全局记忆 | ~/.claude/CLAUDE.md | 存储跨项目的个人偏好,如代码风格、工作习惯、常用工具等 |
项目级(团队共享记忆) | ./CLAUDE.md (项目根目录)或 ./.claude/CLAUDE.md(替代位置 | 定义团队共享的项目标准,包括项目架构、编码规范、工作流程等。这是最常用的一层。 |
子目录级(模块特定记忆 | ./src/auth/CLAUDE.md | 为复杂子模块提供局部上下文和特定规则。当 Claude 操作该目录下的文件时,此文件会被加载。 |
| 由 IT 部门部署在系统特定路径(如 macOS 的 /Library/Application Support/ClaudeCode/CLAUDE.md) | 用于强制执行企业安全规范、合规要求等,用户无法覆盖。 |
加载规则:高优先级的配置会覆盖低优先级的相同配置项。系统会从当前工作目录开始,递归向上搜索父目录直到根目录,并在访问子目录时自动发现并加载该子目录的 CLAUDE.md 文件。
CLAUDE.md 文件主要的生成方式有三种,最常见的方式是自动生成,这个也是官方比较推荐的方式,即在根目录下运行 /init 命令。Claude 会自动分析代码库(读取包管理文件、文档、配置等),生成一个包含技术栈识别、常用命令提取、文件结构分析的初版 CLAUDE.md。优点是无需手动分析,AI 自动完成项目扫描,快速建立基础认知框架。可以从一开始就让 Claude Code 了解项目特性,减少后续沟通成本。当然这么做也有缺点,对应比较的的项目生成时间会比较长,自动生成的内容可能不够精准,需要人工进行审核,也需要人工对一些隐性的规则进行补充。第二种方式是快速记忆添加,在 Claude Code 会话中,使用 # 开头的消息快速添加记忆点。例如输入 # 这个项目构建失败如果没有设置NODE_ENV环境变量,Claude 会提示选择存储位置,并自动整理到相应的 CLAUDE.md 文件中。这样的优点是实时性极强,在开发过程中发现问题或约定时,可以立即记录,避免遗忘。无需手动编辑文件,直接通过对话告诉 Claude 即可,降低维护门槛。代码审查中发现的新约定,也可以即时通过对话加入记忆,知识沉淀自然发生。这样也有缺点,缺点是内容会比较零散,缺乏组织性,并且会产生大量的冗余数据,不利有对整体项目的把控。除了以上两种,还有第三种方式就是手动创建文件,直接在工作目录手动创建或打开 CLAUDE.md 文件并进行编辑。这是最传统但也最可控的方式。这种方式可以把项目的控制权完全掌握在自己手里。缺点是成本会比较高,需要编写者对项目和对Claude Code的使用达到一定标准。并且手动编写比较繁琐,很容易遗漏细节。
CLAUDE.md 的三种创建方式各有优劣,适用于不同的开发场景和阶段。自动生成方式适合快速启动和项目初始化,快速记忆添加方式适合开发过程中的知识沉淀,手动创建方式适合需要精确控制和系统化组织的复杂项目。
在实际使用中,建议采用 “混合策略”:以 /init 自动生成为起点,通过 # 快速添加持续积累,定期使用手动编辑进行系统化整理。同时,充分利用 @ 导入语法实现模块化管理,合理规划分层记忆系统,确保 CLAUDE.md 既保持简洁又内容完整。通过精心设计和维护 CLAUDE.md,开发者可以将 Claude Code 从一个需要反复指导的“新手”,转变为一个深刻理解项目语境、主动遵循团队规范的“智能协作者”,真正实现 AI 辅助开发效率的质的飞跃。
Skills(技能) 和 Subagents(子智能体)
这两个概念算是Claude Code的进阶玩法了,几个小时的学习还不足以让我充分理解这部分内容,只能结合课程讲解的内容和我的理解,简单记录一些。
Skills技能,这个和cursor上的Skills有一定相似度,简单的说就是一个封装好的可以多次重复调用的功能或者子任务,功能通常比较单一,比如代码的lint或者格式化,文件读取,引入检查等。本身不会主动运行,需要ai去调用才能执行。
Subagents子智能体,顾名思义就是一个独立的助手,类似于代码开发中新一个独立的线程,让他单独处理一部分内容,处理完成后再告诉我结果。而在它处理问题的同时,我可以继续我手上的内容。子智能体可以自己拆解任务,这需要告诉它目标,它具有独立的上下文,不会干扰或污染主进程的空间。
当使用 Skills 时,就像给自己装上了“外挂插件,整个过程主导权在你手里,Skill 只是提供了新的能力。而当使用 Subagents 时,就像派下属去完成任务,整个过程你只给了目标,具体执行完全由 Subagent 自主决定。
具体的使用心得还需要我在实际的项目中自己去体会。
总结
经过初步接触,我对 Claude Code 的核心运作机制和基础操作有了一定认识。在实践过程中,从终端交互的便捷性,到分层记忆功能的实用性,以及权限管理与自动化命令的灵活应用,都让我切实体会到 AI 编程工具为开发流程带来的新可能。
在人工智能与软件工程交叉领域的持续研究中,智能编程辅助系统展现出独特的技术价值与应用潜力。这类工具并非传统意义上的代码生成器,而是通过自然语言处理、机器学习等技术,深度重构软件开发流程,在协同开发效率提升、技术门槛降低及创新空间拓展等方面形成显著突破。随着人工智能技术的演进,将智能编程工具全面整合至软件开发全生命周期,已成为推动软件工程领域技术革新的重要研究方向。
下一篇学习笔记,我将聚焦 spec-kit 展开探索 —— 作为一款与 AI 编程工具互补的规范定义工具,它如何助力需求落地、提升团队协作效率?敬请期待后续的实操体验与深度拆解!