使用 Salesforce 语言编写代码
学习目标
完成本单元后,您将能够:
- 列出可帮助您使用 Salesforce 进行开发的语言。
- 说明本单元讨论的每种语言的优点。
- 描述 Apex 如何支持在 Salesforce 上进行开发。
了解您的选项
您刚刚学习了在 Salesforce Platform 上使用无代码和低代码自定义及自动化进行前端开发。如果您是一名编码人员,那么本单元很适合您。如果您不是编码人员,您仍然可以学到有关 Salesforce 开发的关键知识,从而帮助您与编码人员沟通。
在使用 Salesforce Platform 进行开发时,您可以使用多种编程语言,包括:
- Lightning Web 组件框架:基于 JavaScript 的用户界面 (UI) 开发框架,类似于 AngularJS 或 React。
- Apex:Salesforce 特有的编程语言,语法与 Java 类似。
- Node.js:一种异步、事件驱动的 JavaScript 运行环境,旨在构建可扩展的网络应用程序。
让我们来看看 Dreamhouse 示例应用程序中最能体现这些技术的部分。
Lightning Web 组件
Lightning Web 组件 (LWC) 一种用于桌面和移动设备的 UI 开发框架。顾名思义,它是一种基于组件的 UI 开发方法。使用预先构建和自定义的 Lightning web 组件,您可以为应用程序快速开发时尚新颖、风格一致的 UI。
如果您熟悉 AngularJS、React 或 Polymer 等框架,就会很清楚 Lightning web 组件可以实现哪些功能。当然,优点是 Lightning web 组件可以直接使用 Salesforce 中的所有业务数据。
让我们来看看与上一单元在 Lightning 应用程序生成器中查看的房产类似的房产,不过这次我们将在 Dreamhouse 应用程序内部的 Properties(房产)选项卡上查看它。该页面有许多 Lightning web 组件,但在这里,我们只关注一个自定义组件——地图。该地图可显示该房产的位置。用户可以放大查看该处房产及其周边环境的更多细节。
让我们来看看这个组件是如何构建的。
如果您此前一直在使用 Trailhead Playground,那太好了!现在,我们将使用 Visual Studio Code 向您展示 Dreamhouse 应用程序内部的代码截图。
Visual Studio Code(或简称 VS Code)与 Salesforce 扩展包是首选的 Salesforce 集成开发环境(或 IDE),可用于在您的组织中开发、调试和测试代码。在下面的示例中,我们将查看房产组件的代码,特别是 VS 代码中的地图自定义组件。花点时间来看看它的一些重要部件。HTML 文件使用 <template> 标签来存储 HTML 片段。
JavaScript 文件包含定义组件工作原理的方法。
Lightning web 组件也可能有一个 .css 文件,用于为组件设计样式,但这个组件并没有 .css 文件。在 VS Code 的左侧栏中,您还可以看到该组件捆绑包中的一些其他资产,包括一个 .xml 文件和一个测试文件夹。
Lightning web 组件的另一个优点是很容易验证您的组件是否支持移动设备。使用移动模拟器检查和调试您的 Lightning web 组件,确保您的移动受众不会遇到任何问题。
有关 Lightning web 组件的更多信息,请查看下方“资源”部分。
Apex
Apex 是一种强类型、面向对象的编程语言,它允许 Salesforce 开发人员将业务逻辑添加到按钮点击和相关记录更新等系统事件中。
前面我们谈到 Flow Builder 是一种低代码自动化工具。虽然是低代码,但您也可以通过编写一些 Apex 来扩展 Flow Builder 的功能。或者,您也可以单独使用 Apex 构建更复杂的应用程序!让我们来看看在第 2 单元中看到的屏幕流的代码,该流收集信息以在 Dreamhouse 应用程序中创建新的房产记录。
如果曾使用 Java 进行开发,就可能会弄清楚这个类中发生的大部分情况。再次强调,我们不会详细介绍此实施案例的每个细节。除了类似 Java 的语法之外,还有一些其他事项需要注意。
- 请注意,
GeocodingAddress
和Coordinates
内部类中的每个类都有注释为@InvocableVariable
的属性。这样,您就可以使用它们将数据传递到流中。
-
geocodeAddresses
Apex 方法注释了@InvocableMethod
,因此现在可以作为流操作调用。
-
geocodeAddresses
方法通过向第三方服务发出 HTTPCallout,根据地址生成房产坐标。
当然,扩展流只是您可以使用 Apex 增强组织功能的众多方式之一。更多信息,请查看下面的“资源”部分。
Node.js
Node.js 是一种异步、事件驱动的 JavaScript 运行环境,旨在构建可扩展的网络应用程序。在 Salesforce,我们使用 Node.js 作为开发人员工具,但不在平台上使用它进行编码。
当您使用 Salesforce CLI 中的 force:project:create
命令或 VS Code 命令面板创建新项目时,项目中会包含一组 Node.js 脚本和实用程序,以增强您的开发体验。Node.js 是一个与操作系统无关的脚本引擎,可用于使用 Prettier 进行格式化、使用 ESLint 进行过滤、使用 Jest 测试 Lightning web 组件代码等。
您刚刚了解了在 Salesforce Platform 上进行自定义的几种常用语言和框架。在下一个单元中,您将了解到可以集成的工具和产品,从而进一步扩展整个组织的功能。
资源
- Trailhead:Lightning Web 组件基础知识
- Trailhead:Lightning Web 组件测试
- Trailhead:为 Lightning Web 组件设置移动开发工具
- Trailhead:管理员 Apex 基础知识
- Trailhead:设置工作区并安装开发人员工具