用 Claude Code 做 Salesforce 开发完整工作流

用 Claude Code 做 Salesforce 开发完整工作流

Claude Code 是终端原生的编码 Agent ,在你的 SFDX 项目目录里运行,调用 sf CLI、Salesforce 官方 Skills、MCP 服务器,直接读写本地 metadata、Apex、LWC,支持生成代码、静态扫描、跑单元测试、分析 debug log、重构、代码评审;不会自动部署到生产,所有修改先落在本地,你审批后再执行 deploy。

一、前置环境(一次性准备)

  1. 安装 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
  1. 装好 Salesforce CLI(sf)、Node LTS,准备标准 SFDX 项目,并且登录你的 org:
bash 复制代码
sf org login web -d -a mysandbox
  1. 安装 Salesforce 官方 Skills(核心)
bash 复制代码
npx skills add forcedotcom/sf-skills

选择这几个常用 skill:

  • generating-apex:生成 Apex、service layer、trigger、batch/queueable
  • generating-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 认证。
  1. 进入你的 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 内置流程)

  1. 读取现有项目代码、metadata;如果开了 MCP,读取 org 真实对象结构
  2. 生成 .cls / .trigger / LWC 全套文件 + 对应的 -meta.xml
  3. 生成 Test Class,用 TestDataFactory 模式造测试数据
  4. 自动执行 sf code-analyzer 做安全/静态检查
  5. 自动执行 sf apex run test,输出测试结果和覆盖率
  6. 把问题、修复方案、文件变更汇总给你,等待你确认

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 切换模式:

  1. Plan(推荐设计阶段):只读,只输出方案,不修改任何本地文件,适合架构讨论
  2. Manual(日常开发推荐):修改文件/执行CLI命令前,每次都向你请求确认(最安全)
  3. AcceptEdits:直接改文件,但执行命令前仍然询问
  4. 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 特有坑)

  1. 字段/对象幻觉 :不开启MCP时,Claude只能基于本地metadata推断,容易编造不存在的字段;真实org开发强烈建议开启MCP,读取真实schema。
  2. Governor Limits:即使Claude写了批量代码,你必须自己复核,尤其是批量、异步、递归触发器。
  3. 测试覆盖:AI生成测试可能只覆盖happy path,边界、异常、权限场景要人工补充。
  4. 生产部署红线:永远禁止让Claude直接执行部署到生产的命令,部署前人工code review + sandbox全量测试。
  5. 上下文膨胀:同一个session做多轮迭代后,如果质量下降,执行 /clear 新开会话,或者用worktree并行处理多个独立模块,避免旧错误污染上下文。
  6. 托管包、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代码

相关推荐
Liquad Li12 天前
Salesforce 主流认证方式、流程、适用场景
开发语言·salesforce
Liquad Li12 天前
Salesforce主流集成方式、特点、适用场景
salesforce
JeffongTan1 个月前
在LWC中镶嵌VF Page获取用户IP
前端·javascript·salesforce
Liquad Li3 个月前
Salesforce高级开发面试题
java·网络·面试·crm·salesforce
xyzzklk4 个月前
解决Salesforce无法向外发送邮件
android·java·开发语言·网络·crm·salesforce·客户关系管理
大叔编程奋斗记8 个月前
两个日期间的相隔年月计算
前端·salesforce
黑客思维者10 个月前
重塑信任与效率:Salesforce Einstein GPT 客服体系深度案例研究
人工智能·gpt·llm·客服系统·salesforce
黑客思维者10 个月前
Salesforce Einstein GPT 人机协同运营的核心应用场景与工作流分析
人工智能·gpt·深度学习·salesforce·rag·人机协同·einstein gpt
Liquad Li1 年前
CometD 长轮询协议及在Salesforce中的应用
架构·salesforce