2

我们正在使用 Liferay 开始一项大型 portlet 开发工作,我发现很难根据我们正在创建的各种 portlet 来构建这个项目。我们不确定应该以哪种方式构建我们的项目。我们有分布在世界各地的开发团队,我们使用 git 作为我们的版本库。我们使用 Spring Portlet MVC 来开发 portlet 并使用 service builder 来构建服务层。

我可以考虑这三种方法。

  1. 为每个 portlet 创建一个新的 portlet 项目

    • 将每个 portlet 保存在单独的 portlet 项目中可以方便快捷地进行开发,因为我可以让开发人员独立处理它们。
    • 在 portlet 使用公共代码的情况下,这可能会变得很痛苦。因此,在不同的 Portlet 中可能会出现大量相同类型的代码。
    • 这可能会失控,因为我们将有许多战争文件,每个文件都会增加我们的运行时成本。
  2. 在逻辑上将 portlet 分成多个 portlet 项目

    • 这将减少 portlet 项目的数量,并且可以重用大量代码。
    • 一些控制可以放在这样的结构中。
  3. 只创建一个包含所有 portlet 的 portlet 项目

    • 对于分布式开发团队来说,这将是最复杂的管理。
    • 大多数通用代码都可以重用。
    • 在这种情况下,执行一致性会更容易。
  4. 1 和 2 的混合(基于我在下面的评论中与 Dirk 的讨论)我猜这种方法需要混合 1 和 2。

    • 我想为每个开发人员提供一个独立的 portlet 开发环境以及一些关于通用组件的指南。
    • 这样他们就可以更好地控制他们的 portlet 代码,并且只关注 portlet 特定的代码。
    • 同时,公共代码可能需要更多控制,因为多人可能会修改它。

如果您已经创建了 liferay 项目/portlet,我想知道您的专家意见以及您选择的方法。牢记这些事情

  • 当各种开发人员正在开发多个 portlet 时,您如何控制 portlet 开发。
  • 上述任何方法的优点/缺点是什么。
  • 如果上述方法都不好,请提及您能想到的最佳方法。

谢谢阅读

4

2 回答 2

2

在 Dirk 的回答中添加一些内容,我的经验法则是在同一个项目中拥有具有相似维护周期的 portlet - 例如,如果您更新其中一个,您通常会更新所有这些,因为它们创建一个应用程序,通过不同的用户界面。这基本上是您的选择2。

除此之外,您选择的选项非常好 - 答案是“在中间”。平衡分离与应用程序服务器开销。使用上面的经验法则,你就设置好了。

关于开发环境:每个开发人员都应该在自己的环境中工作,但是,通过版本控制,他们当然可以在相同的项目上工作。

于 2011-07-30T15:23:02.013 回答
1

我认为这在很大程度上取决于您实际构建的项目类型。您所说的portlet 是封装功能意义上的portlet 并且将被用作封装的功能(即最终作为Liferay 中的portlet)?在我看来,如果它们的功能是不相交的并且它们不相互依赖,那么它们应该放在不同的项目中。

如果您有核心功能(例如持久层和相关逻辑或其他业务逻辑),您绝对应该尽可能多地重用它。因此,我不认为 (1) 是一个好的解决方案,例如,这种通用逻辑应该分组在一个单独的项目中,并且 portlet 本身依赖于此。

作为一般方法:让开发人员都可以访问所有(或大多数)项目会有什么问题?所有 portlet 都可以重用公共代码,但每个人都必须只做他/她的一部分。

于 2011-05-11T15:11:57.903 回答