Salesforce中是否有任何方法可以在包或命名空间下对顶点类进行分组?我们可以将托管包用于内部组织目的吗?
Salesforce中是否有任何方法可以在包或命名空间下对顶点类进行分组?我们可以将托管包用于内部组织目的吗?
这是force.com堆栈中的限制,如果不是不切实际的话,这会使中大型项目变得痛苦。使用托管包来获取包前缀并不能真正解决任何问题,所以这并不值得。
我通常会尝试将项目组织到一个级别的命名空间中。代替实际的命名空间,我将为每个将要命名空间的名称赋予3-5个字符的名称,以用作前缀。属于“命名空间”的任何类都有前缀。例如,如果我需要一个 payroll
命名空间,我会用 PYRL
字首。一个叫做的课 PaycheckCalculator
变 PYRL_PaycheckCalculator
。
这种类型的约定的实际优点是它有助于防止名称冲突和类在排序列表中查看时按“命名空间”分组,例如在IDE中,或者设置>开发> Apex类
不幸的是,几个基本的OO原则仍然从根本上被打破。可能最重要的一个是每个类形成一个隐含的依赖 一切 它具有可视性的其他类,即 所有 他们
我很想知道其他人是如何解决这个限制的。
好吧,你 能够 使用托管软件包,但正如Jeremy提到的那样,它并没有给你带来太多帮助。当然,托管软件包对于开发在AppExchange上销售的公开列出的应用程序至关重要。但在内部它确实是一个组织范围的问题,因为一旦你创建了一个带有前缀的托管包,触及其他任何部分的所有内容都会被标记相同的名称空间前缀,包括所有自定义对象。更糟糕的是,您无法访问托管包中的代码 外 托管包(实际上是它们的第一点)。
虽然它不是最漂亮的解决方案,但我个人所做的是维护具有不同用途,应用程序和实用程序类的众多命名组织。当我在一个组织中需要一个实用程序类时,假设我正在构建一个发往AppExchange的新应用程序,我将从有问题的实用程序org执行Eclipse导出/导入。这看起来很奇怪,但拥有一个orgs库是我设法跟踪所有事情并管理“内部”组织的最佳方式。但最终结果实际上只是在任意代码存储之间进行了一次美化的复制粘贴操作。
我在处理大型项目时遇到了类似的挑战,回过头来写一篇博文,分享我现在关注的方法: http://www.tgerm.com/2011/11/apex-class-naming-convention-suggestion.html