Apex 开发流程详解

深入详解 Apex 开发的完整七步流程:从选择合适的 Salesforce 开发组织(Sandbox、Scratch Org、Developer Edition、Trial Edition),到五大开发环境(Agentforce for Developers、VS Code & Code Builder、Developer Console、Setup 代码编辑器、文本编辑器),到学习资源(Trailhead、Apex Developer Center、Apex-recipes),到测试驱动开发(单元测试、75% 代码覆盖率要求、最佳实践),再到部署 Sandbox、部署生产环境和 AppExchange 打包发布的全生命周期。...

📅 2026/7/16 ✍️ ponybai 🏷️ apex, salesforce

Apex 开发流程

Apex 开发流程

要开发 Apex,你需要获取一个 Developer Edition 账户,编写并测试代码,然后部署代码。我们推荐按照以下流程进行 Apex 开发:选择合适的 Salesforce 开发组织 → 学习 Apex → 编写代码 → 同步编写测试 → 部署到 Sandbox 测试 → 部署到生产环境。此外,代码编写和测试完成后,你还可以将类和触发器添加到 AppExchange 应用包中。

推荐的七步开发流程

  1. 选择合适的 Salesforce 开发组织 —— 使用 Sandbox、Scratch Org 或 Developer Edition 组织进行开发
  2. 学习 Apex 相关知识 —— 通过 Trailhead 模块、开发者中心、代码示例等资源学习
  3. 编写 Apex 代码 —— 使用 VS Code、Code Builder 或 Developer Console 编写代码
  4. 编写代码的同时编写测试 —— 强烈推荐测试驱动开发(TDD)
  5. 部署到 Sandbox 组织(可选) —— 在隔离环境中完成最终单元测试
  6. 部署到生产组织 —— 使用 VS Code 扩展、Change Set 或 Metadata API 部署
  7. 打包到 AppExchange 应用(可选) —— 需要至少 75% 的测试覆盖率,所有测试必须通过
七步开发流程

第一步:选择合适的 Salesforce 开发组织

你可以在 Sandbox、Scratch Org 或 Developer Edition 组织中进行 Apex 开发,但不能直接在 Production 组织中进行开发。面对这么多选择,以下内容将帮助你确定哪种组织类型最适合你,以及如何创建它。

选择合适的开发组织

Sandbox(推荐)

Sandbox 是生产组织元数据在独立环境中的副本,根据 Sandbox 类型的不同,包含不同数量的数据。Sandbox 为开发人员和管理员提供了一个安全的空间,用于试验新功能和验证变更,然后再将代码部署到生产环境。

  • 安全保障:在 Sandbox 中的操作不会影响生产组织的数据和应用
  • Salesforce DX 工具支持:启用了源追踪的 Developer 和 Developer Pro Sandbox 可以利用 Salesforce CLI、Code Builder 和 DevOps Center 等工具
  • 用途:用于开发、测试和培训,而不会危及生产环境
Sandbox 环境

Scratch Org(推荐)

Scratch Org 是基于源代码驱动的、临时的 Salesforce 代码和元数据部署。它是完全可配置的,允许你模拟不同的 Salesforce 版本以及不同的功能和设置。

  • 生命周期:最长 30 天,默认 7 天
  • 完全可配置:可以模拟不同 Salesforce 版本,启用不同功能和设置
  • 源追踪:默认启用,专为 Salesforce DX 源驱动开发设计
  • 适用场景:短期开发和测试项目、CI/CD 持续集成/持续交付、自动化测试环境
Scratch Org

Developer Edition (DE) 组织

Developer Edition 组织是一个免费的组织,提供对 Enterprise Edition 组织中许多功能的访问权限。

  • 免费:可以注册任意数量的 DE 组织
  • 功能丰富:可以访问 Enterprise Edition 中的许多功能
  • 限制:没有启用源追踪,不能用作 DevOps Center 中的开发环境,存储空间有限
  • 过期风险:随着时间的推移可能变得过时;如果不定期登录则会过期
  • 注册地址:developer.salesforce.com/signup
  • 适用场景:个人学习和探索性开发
Developer Edition 组织

Trial Edition 组织 & Production 组织

Trial Edition(试用版):

  • 通常在 30 天后过期,适合评估 Salesforce 功能
  • 不适合用作永久开发环境
  • Apex 触发器在试用版中可用,但转换为其他版本后会被禁用
  • 重要提醒:在转换之前将代码部署到另一个组织,以保留你的 Apex 触发器

Production 组织(不支持开发):

  • 生产组织是代码和应用的最终目的地,有真实用户访问数据
  • 不能在生产组织中开发 Apex
  • 在开发过程中,真实用户访问系统可能会破坏数据稳定性或损坏应用
Trial Edition 与 Production 组织

第二步:选择 Apex 开发环境

有多种开发环境可用于编写 Apex 代码,请选择最适合你需求的环境。

选择开发环境

Agentforce for Developers(AI 辅助开发)

Agentforce for Developers 是一个 AI 驱动的开发者工具,可以根据自然语言提示生成 Apex 代码,并在你输入时自动建议代码补全。使用它还可以轻松创建单元测试用例,帮助你达到所需的 Apex 测试覆盖率。

  • 自然语言生成代码:通过提示词生成 Apex 代码
  • 内联自动补全:基于 AI 的自动补全建议
  • 测试用例生成:快速生成单元测试
  • 安装:属于 Salesforce Expanded Pack 扩展(salesforcedx-einstein-gpt),在 VS Code 中默认启用
Agentforce for Developers

Salesforce Extensions for VS Code 与 Code Builder

Salesforce Extensions for Visual Studio Code:

  • 轻量级、可扩展的 VS Code 编辑器
  • 提供与开发组织(Scratch Org、Sandbox、DE Org)协作的功能
  • 支持 Apex、Lightning Components 和 Visualforce 开发

Code Builder:

  • 基于浏览器的桌面体验版本,所有工具已经安装和配置好
  • 无需任何设置,可以在任何地方、任何计算机上灵活工作
  • 拥有桌面版的所有功能
VS Code 与 Code Builder

Developer Console(开发者控制台)

Developer Console 是 Salesforce 内置的集成开发环境(IDE),用于创建、调试和测试 Apex 类和触发器。

如何打开:

  • Lightning Experience:点击快速访问菜单 → Developer Console
  • Salesforce Classic:点击 Your Name → Developer Console
Developer Console

Developer Console 支持的任务

  • 编写代码:使用源代码编辑器添加代码,浏览组织中的包
  • 编译代码:保存触发器或类时自动编译,任何编译错误都会立即报告
  • 调试:查看调试日志并设置有助于调试的检查点
  • 测试:执行特定测试类或组织中所有测试类的测试,查看测试结果并检查代码覆盖率
  • 性能检查:检查调试日志以定位性能瓶颈
  • SOQL 查询:使用 Query Editor 查询组织中的数据并查看结果
  • 颜色编码与自动补全:源代码编辑器使用颜色方案提高代码元素的可读性,并自动补全类名和方法名
Developer Console 功能

Salesforce Setup 代码编辑器

在 Salesforce Setup 中,你可以直接在浏览器中查看和编辑 Apex 类和触发器。

  • 所有类和触发器在保存时编译,语法错误会被标记——代码编译无错误后才能保存
  • 代码行号显示
  • 颜色编码区分注释、关键字、字面字符串等代码元素

如何访问 Apex 类:Setup → Quick Find 输入 "Apex" → 选择 Apex 类或触发器 → 点击 Edit 进行编辑

如何创建触发器:Setup → Quick Find 输入 "Object" → Object Manager → 选择对象 → Triggers → 点击 New 输入代码

注意:不能使用 Salesforce Setup 代码编辑器修改生产组织中的 Apex。
Setup 代码编辑器

其他编辑器

你也可以使用任何文本编辑器(如记事本)来编写 Apex 代码。然后可以:

  1. 复制粘贴代码到你的应用中(Developer Console 或 Setup 代码编辑器)
  2. 使用 API 调用直接部署代码

构建你自己的 Apex IDE:

  • 使用 SOAP API 方法编译触发器和类,并执行测试方法
  • 使用 Metadata API 方法将代码部署到生产环境
其他编辑器

第三步:学习 Apex

获得开发者账户后,有很多资源可以帮助你学习 Apex。

学习 Apex

Trailhead 学习模块

以下 Trailhead 模块为初学者和中级程序员提供了全面的 Apex 教程:

  • Quick Start: Apex —— 基于项目的入门教程
  • Apex Basics & Database —— Apex 基础与数据库操作(DML)
  • Apex Triggers —— 触发器语法与用例
  • Apex Integration Services —— HTTP 与 Web 服务集成
  • Apex Testing —— 单元测试与代码覆盖率
  • Asynchronous Apex —— Future、Batch 和 Scheduled Apex 异步模式

使用这些模块学习 Apex 的基础知识,以及如何通过触发器、单元测试、异步 Apex、REST Web 服务和 Lightning 组件来添加自定义业务逻辑。

Trailhead 学习模块

更多学习资源

Salesforce Developers Apex Developer Center:

  • 包含关于 Apex 编程语言的文章、快速入门指南和最佳实践
  • 适合初学者和高级程序员
  • 网址:Apex Developer Center

代码示例与 SDK:

  • 开源代码示例、参考代码和最佳实践
  • Apex-recipes:遵循最佳实践的简洁、有意义的 Apex 代码示例库(GitHub

培训课程:

  • Salesforce Trailhead Academy 提供正式的培训课程
  • Salesforce Credentials 帮助你验证技能水平
更多学习资源

Apex 开发者指南中的内容索引

适合初学者:

  • Apex 简介——文档约定、核心概念、快速入门教程
  • 类、对象和接口
  • 测试 Apex
  • 执行调控器与限制(Execution Governors and Limits)

适合高级程序员:

  • 触发器与批量请求最佳实践
  • 高级 Apex 编程示例
  • 理解 Apex Describe 信息
  • 异步执行(@future 注解)
  • Batch Apex 与 Apex Scheduler

这份开发者指南的结构旨在同时支持初学者和高级 Apex 程序员。

开发者指南内容索引

第四步:编写测试

测试是成功进行长期开发的关键,也是开发过程中的一个关键组成部分。我们强烈建议你使用测试驱动开发(TDD)流程,即测试开发与代码开发同时进行。

编写测试

单元测试概述

为了促进健壮、无错误代码的开发,Apex 支持创建和执行单元测试。单元测试是验证特定代码段是否正常工作的类方法。

单元测试方法的特征:

  • 不接受任何参数
  • 不向数据库提交数据
  • 不发送电子邮件
  • 在方法定义中使用 @IsTest 注解标记
  • 必须定义在测试类中(即带有 @IsTest 注解的类)
最佳实践:Salesforce 建议使用 @IsTest 而不是 testMethod 关键字。testMethod 关键字可能在未来的版本中被弃用。
单元测试概述

代码覆盖率要求

在部署 Apex 或将 Apex 打包到 AppExchange 之前,必须满足以下条件:

  • 单元测试必须覆盖至少 75% 的 Apex 代码,且所有测试必须成功完成
  • 每个触发器都必须有一些测试覆盖率
  • 所有类和触发器必须成功编译

关于代码覆盖率的重要说明:

  • 部署到生产组织时,组织命名空间中的每个单元测试都会默认执行
  • System.debug 的调用不计入 Apex 代码覆盖率
  • 测试方法和测试类不计入 Apex 代码覆盖率
代码覆盖率要求

测试覆盖率最佳实践

不要只关注被覆盖的代码百分比。相反,要确保你的应用的每一个用例都被覆盖。

全面的测试覆盖应包括:

  • 正向用例(Positive Cases) —— 预期成功的正常场景
  • 负向用例(Negative Cases) —— 错误处理和边界情况
  • 批量记录(Bulk Records) —— 测试多条记录,而不仅仅是单条记录场景
  • 单条记录(Single Records) —— 验证单条记录时的行为

这种全面的方法可以确保 75% 或更多的代码被单元测试覆盖,更重要的是,确保你的应用能够正确处理真实世界中的各种场景。记住:目标是质量保证,而不仅仅是达到一个覆盖率数字。

测试最佳实践

第五步:部署 Apex 到 Sandbox 组织

Sandbox 在独立环境中创建你的 Salesforce 组织副本。使用它们进行开发、测试和培训,而不会危及生产组织中的数据和应用。Sandbox 与你的生产组织是隔离的,因此你在 Sandbox 中执行的操作不会影响生产组织。

部署到 Sandbox

Sandbox 部署方法

通过 VS Code 部署:

  • 使用 Salesforce Extensions for Visual Studio Code
  • 从本地项目部署到 Salesforce 组织

通过 Metadata API 部署:

  • 使用 deploy() Metadata API 调用
  • 从开发者组织部署到 Sandbox 组织

有用的 API 调用:

  • runTests() —— 在开发或 Sandbox 组织中运行特定类、类列表或命名空间的单元测试

Salesforce CLI:

  • 支持对任意组织进行开发(Develop Against Any Org)
Sandbox 部署方法

第六步:部署到 Salesforce 生产组织

完成所有单元测试并验证 Apex 代码正常运行后,最后一步是将 Apex 部署到 Salesforce 生产组织。

部署到生产组织

生产环境部署方法

  1. Visual Studio Code:从本地项目部署到 Salesforce 组织(推荐)
  2. Change Sets(变更集):通过 Salesforce 用户界面部署 Apex,无需外部工具
  3. 其他选项:Metadata API 部署、Salesforce CLI 源驱动开发

部署前检查清单:

  • 单元测试覆盖率达到 75% 以上
  • 所有测试必须成功通过
  • 每个触发器都有测试覆盖率
  • 所有类和触发器编译无错误
生产环境部署

第七步:将 Apex 代码添加到 AppExchange 应用

你可以将 Apex 类或触发器包含在你为 AppExchange 创建的应用中。

AppExchange 打包

AppExchange 打包要求

  • 至少 75% 的累计测试覆盖率 —— 包中包含的所有 Apex 代码
  • 每个触发器必须有测试覆盖率
  • 上传到 AppExchange 时,所有测试都会运行,以确保它们能够无错误地通过

安装时测试:

  • 带有 @isTest(OnInstall=true) 注解的测试会在包安装到安装者的组织时运行
  • 你可以指定在包安装期间应运行哪些测试
  • 这组测试子集必须通过,包安装才能成功

更多信息,请参阅 Second-Generation Managed Packaging Developer Guide

AppExchange 打包要求

总结

通过本章的学习,我们完整地掌握了 Apex 开发的端到端流程:

  • 开发组织选择:掌握四种组织类型(Sandbox、Scratch Org、DE Org、Trial Edition)的特点与适用场景,牢记不能在 Production 组织中直接开发
  • 开发环境选择:从 AI 驱动的 Agentforce for Developers,到 VS Code 扩展和 Code Builder,再到内置的 Developer Console 和 Setup 代码编辑器,选择最适合你的工具
  • 学习路径:充分利用 Trailhead 模块、Apex Developer Center、代码示例(Apex-recipes)和 Trailhead Academy 培训课程
  • 测试驱动开发:使用 @IsTest 编写健壮的单元测试,达到 75% 以上的代码覆盖率,确保覆盖正向/负向用例以及单条/批量记录场景
  • 部署策略:先在 Sandbox 中测试,再通过 VS Code、Change Set 或 Metadata API 部署到生产环境
  • AppExchange 打包:满足 75% 累计测试覆盖率要求,配置安装时测试(OnInstall=true),确保打包顺利通过

掌握了这个完整的开发流程,你就为自己的 Apex 开发之旅奠定了坚实的方法论基础。

感谢阅读本指南。如需更详细的信息,请参阅 Apex 开发者指南后续章节。