Spring后端和gwt前端,关注点分离?

时间:2013-10-13 07:26:20

标签: spring gwt

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

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

Spring,JPA,mySQL,MongoDB,RabbitMQ ..

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

我的问题很简单:

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

OR:

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

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

2 个答案:

答案 0 :(得分:0)

这取决于不同的参数,如项目的最终大小,团队成员的数量等。

但总的来说,我宁愿在maven模块中拆分项目,因为它允许更好的客户端/服务器端分离,它便于测试,当你让项目中的人集中在一边时,它会更方便。

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

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

答案 1 :(得分:0)

为简单起见,我会在纯粹的前端项目和纯后端项目中分解它。由于您必须在中间编写消息传递服务,因此工作量会略微增加,但是长期来说,您可以将该后端重用于其他前端/服务。

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

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

所以基本上从插件能力和易测试性的角度来看,因为你计划使用RabbitMQ,两个独立的项目,如果只有一个项目包含前端和后端,那么就没有/对RabbitMQ的需求很少,而且对于你正在启动的每个前端,你都会启动另一个可能浪费内存的后端。