17

我工作的公司正在构建一个托管的 force.com 应用程序,作为与我们提供的服务的集成。

由于 force.com Eclipse 插件提供的劣质工具,我们在处理同一组文件时遇到了问题。如果 2 位开发人员正在处理同一个文件,则会向其中一位发出无法保存的消息——一旦他合并,他必须手动强制插件将他的更改推送到服务器,同时单击 2 'Are you really sure'消息。

基本上,如果另一个人修改了他正在处理的文件,每次开发人员想要保存时,该工具在合并更改和强制工作几分钟方面做得很差。

我们目前正在通过让同事知道谁在编辑文件来基本上“锁定”单个文件来解决这个问题。

感觉在这个时代必须有更好的方法。有谁知道我们可以使用不同的工具集、我们可以改变的流程,或者我们可以做些什么来让这更容易?

4

6 回答 6

7

在使用 Force.com 平台时,我目前的组织发现根据情况可以采用多种不同的方法。我们都使用 Eclipse Force.com 插件没有问题,并且发现以下设置运行良好。

我们有一个集中的版本控制系统,我们使用一系列 ant 命令将其部署到开发人员组织实例。然后,我们根据工作范围将其分成几块,每个开发人员都有自己的开发组织,合并更改并定期测试它们,或者一起在一个开发组织中工作(如果你有 2 个开发人员应该不会主要问题)允许您几乎即时集成。

如果你们都尝试处理同一个文件,那么无论如何都应该结对编程,但是如果一起处理相似系统的两个组件,共享同一个组织可以让您通过创建框架以快速灵活的方式进行开发您希望使用的系统,然后单独充实细节。

我已经广泛使用了这两种方法,并且我说,根据具体情况工作得很好。

于 2010-09-24T11:50:24.403 回答
6

每个开发人员都可以在单独的开发沙箱中工作(如果您有企业版,我认为费用中包含了 10 个具有完整配置和有限数据量的沙箱?)。有时您会合并您的更改(来自任何版本控制系统的差异工具就足够了)并在集成环境中测试它们。链开发->集成->系统测试->问答->生产也可以用于其他原因。

如果例如两个人在同一个触发器上工作,则可以使用单独的技巧来考虑。我在开发人员的“DEV 401”课程中学到了它。

  1. 将所有逻辑移至类。严重地。它们也将更容易进行单元测试。
  2. 将自定义字段(多选选项列表)添加到用户对象。值应该等于人们正在研究的每个单独的功能。它最多可以容纳 500 个值,因此您应该是安全的。
  3. 对于开发人员 1 的用户帐户,在选择列表中设置“feature1”。为另一个人设置“feature2”。
  4. 在触发器中编写一个if测试每个选项列表值的存在并进入或离开对相关类的调用。这浪费了 1 个查询,但您确定只会调用您想要的代码。
  5. 每个开发人员都继续在自己的类文件中工作。
  6. 对于这两个功能的集成测试,只需将多选设置为包含这两个功能。

当其他人的代码被证明不是最优的并且占用了太多资源时,我发现这个技巧特别有用。我刚刚在我的用户帐户上禁用了他的功能并继续工作。

这个技巧在某种程度上也可以应用于 Visualforce 页面(如果您可以将它们分成组件)。

如果您不想浪费查询 - 使用一些逻辑,例如“用户的名字包含 X”;)

于 2010-08-02T18:13:24.387 回答
6

我们有/遇到过完全相同的问题,我们有一个由 10 名开发人员组成的团队,他们正在开发一个 force.com 应用程序,该应用程序具有大量的顶点类 (>300) 和 VF 页面 (>300)。

我们开始使用 Eclipse 插件,但发现它:

  1. 每次调用保存时在美国以外的地方工作太慢需要> 5个部分
  2. 与一个由 10 名开发人员组成的团队解决许多合并问题

接下来我们尝试在我们自己的独立沙箱中开发,然后合并代码。这对于一个小项目来说是可以的,但是当你有很多文件并且需要在沙箱之间推送更改时,它变得无法管理,因为唯一比 force.com 开发工具更糟糕的是 force.com 的部署/构建工具。没有自动化,全是手动的。也没有简单的方法在沙箱之间移动数据。

我们的第三种方法是在浏览器中编辑我们所有的 VF 页面和 Apex 代码。(不使用显示在页面下半部分的嵌入式编辑器,因为那是错误且缓慢的),而只是使用设置>开发> Apex类下的常规编辑器。这工作正常。为了补充这一点,我们还有一个预定的工作,它将下载我们所有的代码并将其保存到我们的 SVN 存储库中。我们还构建了一个工具,允许我们单击桌面上的文件夹并压缩其内容并将其部署为我们的静态资源。

然而,这种方法仍然有其缺点,即在云中开发缓慢且痛苦,他们(销售人员)开发即服务的想法是疯狂的。此外,我们没有真正的 SCM,我们仅将其用作备份。

底线是 force.com 是 CRM 而不是开发平台,如果可以的话?跑,逃,尽可能快地离开它。将它用于除 CRM 之外的任何东西都会带来更多麻烦,而不是值得。甚至他们的口号“No Software”每次都让我发笑

于 2010-08-05T00:24:57.743 回答
1

我不熟悉 force.com,但您不能使用源代码控制并将所有文件从 force.com 拉到您的存储库中。然后你们都可以做你们的工作,并将你们的改变合并回主线。然后每当有必要将主线推到 force.com 上?

于 2010-08-02T17:47:03.927 回答
1

看看《开发生命周期指南:Force.com 平台上的企业开发》。您可以在 developer.force.com 的文档页面上找到它。

于 2010-08-03T10:23:17.113 回答
0

您可能需要考虑在单独的静态资源和页面上工作,然后在编辑对象、类等时要小心。如果您的大部分开发发生在客户端代码(页面、静态资源、闪电组件/应用程序)上,您可能会感兴趣这个项目:https ://github.com/bvellacott/salesforce-build 。无论如何,我强烈建议使用版本控制。如果不在服务器上,那么至少在您的机器上本地,以防您的同行覆盖您的工作。

于 2017-02-22T00:32:14.423 回答