学习目标
完成本单元后,您将能够:
- 描述Salesforce DX项目的目的。
- 描述Salesforce DX如何帮助您管理更改跟踪。
- 解释在开发过程中划伤组织的作用。
现在乐趣开始了
正如我们在前面的单元中所了解的那样,使用Salesforce DX,您可以决定使用哪些工具。您可以将您最喜爱的文本编辑器与Salesforce CLI或Salesforce Extensions for VS代码结合使用。您可以选择要使用的VCS。如果使用Salesforce Extensions for VS Code,我们提供了几个扩展来帮助用Salesforce DX进行开发。
对于源代码驱动的开发,您的源代码将根据您想要一起交付的一组功能或自定义设置组织为工件。 Salesforce DX项目反映了这种基于工件的方法来组织您的源代码。
什么是Salesforce DX项目?
Salesforce DX项目是工件来源和Salesforce DX元数据的本地目录结构,可让您使用Salesforce DX工具进行开发和测试。
它包含用于创建临时组织的配置文件。它可以包含要加载到组织以供开发或测试的数据。它还应该包含您依赖验证您的工件的测试。
当您使用CLI创建新的Salesforce DX项目时,它会为您创建项目目录结构。从零开始创建项目时,会为您创建许多事物。我们创建一个基础项目配置文件。我们为您的测试和样本数据集创建示例临时定义文件和目录。我们还为您的工件源创建了一个默认的“包”目录。
请记住,工件是一组相关的代码和自定义项。您可以独立于组织中的其他组件测试工件。一个神器也可以独立释放。工件中的元数据组件一次只能存在一个工件。
该项目至少管理一个工件的来源。也就是说,如果多个构件一起构建并发布,则可以将这些构件组织到单个SFDX项目中。每个工件都与项目配置文件中定义的软件包目录对齐。
如何抓住发展进程
从您的源代码和元数据构建的临时组织,使您可以轻松地一遍又一遍地构建应用程序。您只能使用特定项目的源和元数据。没有必要复制你不需要的东西(坦率地说,我们不推荐它)。由于临时组织是临时的Salesforce环境,因此可以为每个工件或开发项目快速创建新的临时组织。
一旦你的VCS被设置好了,你的源代码被组织到工件中,你就可以开始一个新的开发项目了。打开你最喜欢的IDE或文本编辑器,然后添加或修改你的源代码。当您准备好在组织中查看更改时,可以创建一个临时组织。
在创建一个scratch组织之后,您仍然需要完成一些设置任务。您需要将项目中的所有源码都推送到临时组织,设置权限,以及创建或加载使用工件所需的任何测试数据。
虽然IDE或文本编辑器可用于编程(基于代码)的开发,但您可以使用scratch org进行声明式(指向并单击)开发,就像您在沙盒或生产组织中进行的基于组织的开发模型。源驱动模型的不同之处在于,您可以将您从头开始的任何开发与本地项目同步。这使您可以提交设置页面中所做的更改以及在本地IDE中所做的更改。
在提交到版本控制系统之前,请确保运行测试。您可以使用相同的scratch org来运行测试,也可以在提交源代码之前专门进行测试。同样的测试模式将成为自动化持续集成系统的关键部分。
保持你的项目和组织同步
Salesforce DX的一个主要特点是,您可以轻松地保持项目和暂存组织的同步。所以你可以放弃那些粘滞便笺!您不必记下在本地文件系统,IDE或编辑器中更改的内容,或者在组织中更改的内容。
Salesforce DX跟踪您在项目中本地进行的任何更改以及您在从头开始的任何更改。
在将源元数据更改推送到临时组织之前,或者从临时组织中将更改提交到本地项目之前,可以查看您所做的更改列表。这就是Salesforce CLI在行动中的力量。
$ sfdx force:source:status
STATE FULL NAME TYPE PROJECT PATH
───── ────────── ────────── ─────────────────────────────────
Local Deleted MyClass ApexClass /MyClass.cls-meta.xml
Local Deleted MyClass ApexClass /MyClass.cls.xml
Local Add OtherClass ApexClass /OtherClass.cls-meta.xml
Local Add OtherClass ApexClass /OtherClass.cls.xml
Local Add Event QuickAction /Event.quickAction-meta.xml
Remote Deleted TempClass ApexClass /TempClass.cls-meta.xml
Remote Deleted TempClass ApexClass /TempClass.cls.xml
Remote Changed (Conflict) NewClass ApexClass /NewClass.cls-meta.xml
Remote Changed (Conflict) NewClass ApexClass /NewClass.cls.xml
Salesforce DX解决了这个问题,它提供了一个新的源代码形式,可以分解这些大的源文件,使它们更容易理解,并且更易于使用版本控制系统进行管理。 例如,Salesforce DX将自定义对象和自定义对象翻译转换为多个文件和目录。 这个源结构使得更容易找到你想要更改或更新的内容。 源代码管理中的较小文件意味着团队开发过程中的合并冲突更少。 只要说再见,凌乱的合并!
完成开发之后,请始终将您的更改回复到VCS回购。 现在您已准备好使用Salesforce DX进行测试,构建和发布。