用 Claude Code 做 Salesforce 开发完整工作流
Claude Code 是终端原生的编码 Agent ,在你的 SFDX 项目目录里运行,调用
sfCLI、Salesforce 官方 Skills、MCP 服务器,直接读写本地 metadata、Apex、LWC,支持生成代码、静态扫描、跑单元测试、分析 debug log、重构、代码评审;不会自动部署到生产,所有修改先落在本地,你审批后再执行 deploy。
一、前置环境(一次性准备)
- 安装 Claude Code CLI
powershell
# Windows
irm [https://claude.ai/install.ps1](https://claude.ai/install.ps1) | iex
# Mac/Linux
curl -fsSL [https://claude.ai/install.sh](https://claude.ai/install.sh) | bash
- 装好 Salesforce CLI(sf)、Node LTS,准备标准 SFDX 项目,并且登录你的 org:
bash
sf org login web -d -a mysandbox
- 安装 Salesforce 官方 Skills(核心)
bash
npx skills add forcedotcom/sf-skills
选择这几个常用 skill:
generating-apex:生成 Apex、service layer、trigger、batch/queueablegenerating-apex-test:自动生成 Apex 测试类,目标覆盖率 ≥75%generating-lwc-components:LWC(js/html/metadata.xml)debugging-apex-logs:解析 Apex debug log,定位 governor limit、SOQL-in-loop 问题
进阶:Salesforce Hosted MCP Server (可选,非常强)
在 Salesforce 后台创建 External Client App,在 Claude Code 添加 MCP 连接器,MCP 可以直接读取你 Org 的真实对象、字段、metadata,生成代码不会虚构字段名,完全贴合你的沙盒/scratch org 真实 schema,而不是写通用模板。
- 生产 org:
[https://api.salesforce.com/platform/mcp/v1/platform/sobject-reads](https://api.salesforce.com/platform/mcp/v1/platform/sobject-reads)- sandbox/scratch org:
[https://api.salesforce.com/platform/mcp/v1/sandbox/platform/sobject-reads](https://api.salesforce.com/platform/mcp/v1/sandbox/platform/sobject-reads)
进入 Claude Code,/mcp管理 MCP 服务器并完成 OAuth 认证。
- 进入你的 sfdx 项目根目录,启动 Claude Code
bash
claude
二、日常开发标准流程(最常用)
核心思路:先让 Claude 做方案规划 → 生成本地代码 → 静态扫描 + 跑测试 → 人工 review → 本地验证 → 手动部署
1. 需求描述(Prompt 写法)
不要只写"写一个触发器",给 Claude 约束:对象、字段、bulk 要求、安全、 Governor 限制、团队规范。
示例:
基于 Account 对象写 after insert/update trigger,批量校验邮箱不能重复,使用 trigger handler 框架,避免 SOQL in loop,写对应的 Apex test class,保证覆盖率>75%;运行 sf code-analyzer,把所有阻断级问题修复。只修改本地文件,不要直接部署。
2. 它会自动做这些事(Salesforce skill 内置流程)
- 读取现有项目代码、metadata;如果开了 MCP,读取 org 真实对象结构
- 生成
.cls/.trigger/ LWC 全套文件 + 对应的-meta.xml - 生成 Test Class,用 TestDataFactory 模式造测试数据
- 自动执行
sf code-analyzer做安全/静态检查 - 自动执行
sf apex run test,输出测试结果和覆盖率 - 把问题、修复方案、文件变更汇总给你,等待你确认
3. 调试与性能分析
- 上传 Apex debug log:
@debug.log,指令:
分析这个apex日志,找出CPU/heap超限、SOQL/DML在循环里的问题,给出重构后的批量化Apex代码。
- 常用场景:Batch Apex、Queueable、平台事件、REST 自定义端点的性能瓶颈排查。
4. SOQL / SOSL 编写、重构、优化
直接自然语言描述业务,生成关系查询、聚合、多对象查询,同时提醒行限制、索引、多态lookup坑:
写一个SOQL查询,获取2026年创建的Opportunity,连带Account.Name、Contact的关联记录,不要超过5万行限制,加上合理的索引字段过滤。
5. 代码重构 & 代码审计
- 老 trigger 重构为 trigger handler / service layer 分层
- 批量化改造(把循环内SOQL/DML改成批量)
- 安全审计:
/security-review,检查CRUD/FLS、XSS、硬编码ID、权限漏洞 - 大规模代码库迁移、元数据梳理、清理废弃字段/类
6. 部署流程(必须人工确认,禁止让 Claude 直接推生产)
你可以让 Claude 生成 sf CLI 脚本,但部署命令由你确认后执行:
生成sf命令,把本地Apex和LWC部署到my sandbox,部署前先跑全部apex测试,输出部署报告,不要自动执行deploy。
示例生成脚本:
bash
sf project deploy start --target-org mysandbox --test-level RunLocalTests
三、权限模式控制(非常关键,防止误操作)
在 Claude Code 终端用 Shift+Tab 切换模式:
- Plan(推荐设计阶段):只读,只输出方案,不修改任何本地文件,适合架构讨论
- Manual(日常开发推荐):修改文件/执行CLI命令前,每次都向你请求确认(最安全)
- AcceptEdits:直接改文件,但执行命令前仍然询问
- Auto:自动执行安全命令;生产环境绝对不要用auto
安全最佳实践:生产相关操作一律使用 Manual / Plan 模式;可以在
.claude/settings.json设置 deny 规则,禁止危险命令,比如sf deploy到生产、批量删除等。
四、不同任务选用模型(控制成本+效果)
- Haiku:简单任务,改注释、格式化、小bug修复、写文档
- Sonnet(日常默认):Apex/LWC开发、普通重构、写测试类
- Opus:复杂架构、跨文件大重构、复杂性能瓶颈、复杂集成逻辑、多系统事务(比如Salesforce与外部系统API、CPQ复杂逻辑)
五、典型 Prompt 模板,直接复制使用
模板1:新建 Apex + Test Class
在当前sfdx项目新建Apex service类,用于Project__c对象状态更新,遵循single responsibility,做CRUD/FLS校验,批量处理DML,写完整test class,测试数据用TestDataFactory,运行code analyzer,修复所有阻断问题,输出文件变更清单。
模板2:LWC 组件
创建LWC,在页面展示Project__c列表,支持分页,调用Apex controller,实现缓存,处理权限隐藏,生成完整js/html/meta.xml,同时写Apex测试。
模板3:代码审查
审查@classes/AccountTriggerHandler.cls,检查是否违反Salesforce最佳实践,检查governor风险、CRUD/FLS缺失、安全漏洞,给出修复方案。
模板4:日志调试
解析这个@debug.log,定位batch apex触发的governor limit问题,指出哪一行代码造成循环SOQL,给出重构后的批量代码。
六、避坑要点(Salesforce 特有坑)
- 字段/对象幻觉 :不开启MCP时,Claude只能基于本地metadata推断,容易编造不存在的字段;真实org开发强烈建议开启MCP,读取真实schema。
- Governor Limits:即使Claude写了批量代码,你必须自己复核,尤其是批量、异步、递归触发器。
- 测试覆盖:AI生成测试可能只覆盖happy path,边界、异常、权限场景要人工补充。
- 生产部署红线:永远禁止让Claude直接执行部署到生产的命令,部署前人工code review + sandbox全量测试。
- 上下文膨胀:同一个session做多轮迭代后,如果质量下降,执行
/clear新开会话,或者用worktree并行处理多个独立模块,避免旧错误污染上下文。 - 托管包、CPQ、Salesforce标准扩展:模型对托管包内部类/方法认知有限,复杂CPQ、LWC与CPQ交互逻辑,优先用Opus,并且给它提供本地相关源码。
七、和 Agentforce Vibes 的区别(容易混淆)
- Claude Code:终端Agent,可以调用sf CLI,支持CI/CD脚本化,适合复杂架构、批量重构、本地SFDX项目,可在流水线里跑,模型可选Sonnet/Opus。
- Agentforce Vibes IDE :VSCode内IDE,内置Claude Sonnet,原生读取org元数据,开箱即用,但不能在终端/CI脚本调用,适合快速原型开发。
推荐组合:日常快速原型用Vibes;复杂重构、脚本化、CI检查、深度调试用Claude Code。
八、CI/CD集成(进阶)
Claude Code支持headless模式,可以在GitHub Action/Jenkins做:
- PR自动代码扫描、安全审查
- 自动生成测试代码、检查覆盖率
- 静态代码分析(code analyzer)自动拦截高风险Apex代码