Salesforce部署最佳实践?

Dan*_*att 3 salesforce

我们目前正在尝试使用Salesforce平台来替换几个内部CRM工具,并且已经部署了一些代码.随着我们的代码库的增长,我们开始感受到其他人在代码组织方面所描述的一些痛苦(没有好的命名空间/包装等).我们是企业级客户,虽然我们目前的实验目前只涉及一个部门,但我们希望它最终会成长为整个公司.

在一个拥有3-4个完全不同的销售团队的组织中,每个团队都有不同的业务流程,因此编码不同(在SF术语中:记录类型,布局,触发器等),管理部署的好方法是什么?"套餐"是否适合这种情况,或者整个公司是否应该在同一个SF Org /名称空间内运行良好?

Bry*_*yan 5

通常,您不会享受开发体验,因为您有三个团队将分别尝试建立他们的系统.每个人的发展都会略有不同,因为他们会找到不同的解决办法来解决将要出现的许多问题.

您必须找到一种方法来命名您的触发器和类:为每个团队选择一个前缀来分隔它们的代码.

使用较少的大类:在使用传统OOP(例如Java)编程时,我喜欢小型有意义的类.但在Salesforce中,管理类需要很大的开销.此外,所有课程只有一个大文件夹(yuck).所以,我现在构建更大的类文件.在每个文件中,我都包含测试代码.我将触发器测试代码放入对同一对象进行操作的类(例如控制器)中.

要跟踪更改并执行代码审查,您可以使用此技术:将Force IDE与版本控制系统(如CVS,SVN,Mercurial或Git)结合使用.
设置主要生产项目以包括所有内容(右键单击项目... Force.com ...项目属性.在首选项对话框中展开Force.com并选择项目内容.按添加/删除并添加所有内容).我没有以这种方式将配置文件更改从IDE部署回生产.这样做可能不是一个好主意.但我确实推回了顶级类,触发器和页面.每次保存的往返都很慢!现在使用源代码管理系统来记录更改,但也比较版本.

从沙箱到生产的部署:我放弃了使用UI部署工具.它们适用于简单的事情,但我发现它无法处理更复杂的更改(新对象,选项卡,应用程序,触发器,类,页面,布局).我将更改从沙箱逐个迁移到生产中.有三个团队,这意味着您可能需要一个部署最终变更的中央团队?

有许多方法可以隔离您的系统,包括记录类型.这些要求代码包括硬编码的SF Id或使用字符串执行查找.在这两种情况下,您都不希望在整个代码中分发这些字符串或ID.想想你需要重构时的噩梦.相反,创建一个Globals类并在此处放置所有硬编码的名称和ID.至少你可以执行更合理的搜索和替换.

我喜欢SF.有些事情很容易做到.但是一些开发任务似乎需要很长时间.祝好运