关于 sf-apex
面向 Salesforce 的技能,用于生成和审查生产级 Apex 类、触发器、异步作业及测试。它强调批量安全、共享与安全性、测试覆盖,并遵循项目现有架构。
主要功能
- 01生成并重构 Apex
- 02设计触发器与异步作业
- 03审查批量安全和安全性
- 04指导测试类与断言
- 05沿用项目现有模式
适用场景
- 01创建 Queueable 或 Batch 作业
- 02审查触发器的批量处理
- 03添加兼顾安全性的 Apex 逻辑
- 04编写正向、反向及批量测试
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ jaganpro/ sf-skills --skill sf-apex安装后在 Claude Code 中输入/sf-apex确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
CREDITS.mdREADME.mdassets/apex-class.clsbatch.clsinvocable-method.clsqueueable.clsselector.clsservice.clstest-class.clstest-data-factory.clstrigger-action.clstrigger.triggerhooks/scripts/apex-lsp-validate.pyllm_pattern_validator.pypost-tool-validate.pyprettier-format.pyvalidate_apex.pyreferences/anti-patterns.mdautomation-density-guide.mdbest-practices.mdbulkification-guide.mdcode-review-checklist.mdcode-smells-guide.mddesign-patterns.mdflow-integration.mdllm-anti-patterns.mdnaming-conventions.mdpatterns-deep-dive.mdsecurity-guide.mdsecurity-quick-reference.md详细介绍
sf-apex:Salesforce Apex 代码生成与审查
当用户需要生产级 Apex 时使用此技能:新建类、触发器、选择器、服务、异步作业、可调用方法、测试类,或基于证据审查现有 .cls / .trigger 代码。
此技能适用的任务
以下工作使用 sf-apex:
- Apex 类的生成或重构
- 触发器设计和触发器框架决策
@InvocableMethod、Queueable、Batch、Schedulable 或测试类相关工作- 审查批量处理、共享、安全性、测试或可维护性
以下工作应委派给其他技能:
- 编辑 LWC JavaScript / HTML / CSS → sf-lwc
- 构建 Flow XML 或 Flow 编排 → sf-flow
- 只编写 SOQL → sf-soql
- 将元数据部署或验证到组织 → sf-deploy
首先收集所需上下文
询问或推断:
- 类的类型:触发器、服务、选择器、批处理、队列、计划任务、可调用、测试
- 目标对象和业务目标
- 代码属于全新开发、重构还是修复
- 已知的组织 / API 限制
- 预期测试覆盖率或部署目标
开始编写前,检查项目结构:
- 现有类 / 触发器
- 当前触发器框架或处理程序模式
- 相关测试、流和选择器
- 是否已在使用 TAF
推荐工作流
1. 了解本地架构
检查:
- 现有触发器处理程序 / 框架
- 服务-选择器-领域层约定
- 相关测试和数据工厂
- 仓库中已使用的可调用或异步模式
2. 选择最简单且正确的模式
| 需求 | 首选模式 |
|---|---|
| 简单的可复用逻辑 | 服务类 |
| 查询密集型数据访问 | 选择器 |
| 单一对象的触发器行为 | 一个触发器 + 处理程序 / TAF 操作 |
| Flow 需要复杂逻辑 | @InvocableMethod |
| 后台处理 | 默认使用 Queueable |
| 极大型数据集 | Batch Apex 或 Database.Cursor 模式 |
| 可重复验证 | 专用测试类 + 测试数据工厂 |
3. 按照防护要求编写
生成的代码应当:
- 安全处理批量数据
- 考虑共享规则
- 在适用时安全处理 CRUD/FLS
- 可独立测试
- 符合项目的命名和分层约定
4. 验证并评分
交接前根据 150 分制评分标准进行评估。
5. 交接后续部署 / 测试步骤
需要在组织中验证时,交接给:
- sf-testing,用于测试执行循环
- sf-deploy,用于部署 / 演练运行 / 验证
生成防护要求
若未明确停止并解释问题,绝不生成以下内容:
| 反模式 | 阻止原因 |
|---|---|
| 在循环中执行 SOQL | 触发治理限制失败 |
| 在循环中执行 DML | 触发治理限制失败 |
| 缺少共享模型 | 存在安全 / 数据泄露风险 |
| 硬编码 ID | 部署和可移植性失败 |
空的 catch 块 | 静默失败 / 可观测性差 |
| 使用用户输入拼接字符串构建 SOQL | 存在注入风险 |
| 没有断言的测试 | 测试套件会产生假阳性 |
默认修复方向:
- 只查询一次,并对集合进行操作
- 除非有合理理由,否则使用
with sharing - 适当使用绑定变量和
WITH USER_MODE - 为正向、负向和批量场景创建断言
请参阅 references/anti-patterns.md 和 references/security-guide.md。
高价值构建规则
触发器架构
- 优先采用每个对象一个触发器。
- 如果已安装并使用 TAF,则应扩展它,而不是另创一套触发器模式。
- 触发器应委派逻辑;避免在触发器主体中直接编写繁重的业务逻辑。
异步方式选择
| 场景 | 默认方式 |
|---|---|
| 标准异步工作 | Queueable |
| 超大规模记录处理 | Batch Apex |
| 定期调度 | Scheduled Flow 或 Schedulable |
| 作业后清理 | Finalizer |
| 长时间运行的 Lightning callout | Continuation |
最低测试要求
每项功能都使用 PNB 模式:
- 正向路径
- 负向/错误路径
- 批量路径(适用时处理 251 条以上记录)
现代 Apex 规范
在可用时优先采用当前惯用写法:
- 安全导航:
obj?.Field__c - 空值合并:
value ?? fallback - 使用
Assert.*,而非旧式断言写法 - 在相关场景中使用
WITH USER_MODE并明确处理安全性
输出格式
完成后,按以下顺序报告:
- 创建或审查的内容
- 已更改的文件
- 关键设计决策
- 风险/防护措施说明
- 测试指导
- 部署指导
建议格式:
Apex work: <summary>
Files: <paths>
Design: <pattern / framework choices>
Risks: <security, bulkification, async, dependency notes>
Tests: <what to run / add>
Deploy: <dry-run or next step>
LSP 验证说明
此技能支持针对 .cls 和 .trigger 文件的 LSP 辅助编写循环:
- 写入/编辑后可立即检测语法问题
- 此技能可在短循环中自动修复常见语法错误
- 语义质量仍取决于 150 分制审查标准
完整指南:references/troubleshooting.md
跨技能集成
| 需求 | 委派给 | 原因 |
|---|---|---|
| 首先描述对象/字段 | sf-metadata | 避免基于错误的架构编写代码 |
| 准备批量或边界情况数据 | sf-data | 创建真实的测试数据集 |
| 运行 Apex 测试/修复失败的测试 | sf-testing | 执行测试并迭代处理失败项 |
| 部署到 org | sf-deploy | 验证并协调部署 |
| 构建调用 Apex 的 Flow | sf-flow | 声明式编排 |
| 构建调用 Apex 的 LWC | sf-lwc | UI/控制器集成 |
参考索引
从这里开始
- references/patterns-deep-dive.md
- references/security-guide.md
- references/bulkification-guide.md
- references/testing-patterns.md
高价值检查清单
专用模式
- references/trigger-actions-framework.md
- references/automation-density-guide.md
- references/flow-integration.md
- references/triangle-pattern.md
- references/design-patterns.md
- references/solid-principles.md
故障排除/验证
评分指南
| 分数 | 含义 |
|---|---|
| 120+ | 达到生产就绪标准的优质 Apex |
| 90–119 | 实现良好,部署前需审查 |
| 67–89 | 可以接受,但需要改进 |
| < 67 | 阻止部署 |
评论
支持 Markdown