【问题标题】:Spring backend, and gwt frontend, separation of concerns?Spring后端和gwt前端,关注点分离?
【发布时间】:2013-10-20 23:48:32
【问题描述】:

我们即将开始一个新的项目开发,它基本上是一个后台应用程序。

我们在后端选择了以下技术:

Spring、JPA、mySQL、MongoDB、RabbitMQ..

我们选择使用 GWT 作为我们的前端框架。

我的问题很简单:

我们应该创建一个包含后端和前端的项目吗?

或者:

我们是否应该创建 2 个单独的项目,一个是纯后端项目,另一个是纯前端项目?

编辑 - 我们是一个由 4 名开发人员组成的团队,每个人都应该在端到端开发中亲自动手。即团队中的每个人都应该编写从客户端到服务器的功能。

【问题讨论】:

    标签: spring gwt


    【解决方案1】:

    为简单起见,我会将其分解为纯前端项目和纯后端项目。由于您必须在其间编写消息传递服务,因此工作量会稍多一些,但从长远来看,您可以将该后端重用于其他前端/服务。

    由于您要使用 RabbitMQ 进行消息传递,您不妨将它们分开,当负载变重时,您只需插入另一个前端实例或后端开始受苦时,启动另一个后端或队列时受苦,启动另一个 RabbitMQ 实例。

    对于前端项目,我将使用 XMLRPC 之类的东西,然后您的 GWT 代码将通过 XMLRPC 与您的 Java 代码进行通信,瞧,您可以在此处测试端点,只需在此处插入虚拟数据即可进行开发并在即使没有数据库或队列系统的前端。这也允许您同时启动两个项目。

    所以基本上从插件能力和易于测试的角度来看,由于您打算使用 RabbitMQ,两个独立的项目,如果只有一个项目包含前端和后端,那么就没有/几乎不需要 RabbitMQ,而且对于您启动的每个前端,您都会启动另一个后端,这可能会浪费内存。

    【讨论】:

      【解决方案2】:

      这取决于不同的参数,例如项目的最终规模、团队成员的数量等。

      但总的来说,我宁愿将项目拆分为 maven 模块,因为它可以更好地分离客户端/服务器端,便于测试,并且当项目中的人员专注于一侧时会更方便。

      如果您继续进行此设置,我建议您查看 Tomas Broyer 的 archetypes

      [已编辑] 知道你是一个由 4 人组成的团队并且你将工作 8 个月,我肯定会选择一个多模块的 maven 项目(服务器、共享、客户端)。

      【讨论】:

      • 项目会很大(代码行数)吗?你估计要工作几个月?
      • 粗略估计:8 个月
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多