Grails作为单个应用程序或不同的后端和前端应用程序

时间:2014-08-06 05:08:03

标签: node.js angularjs grails architecture gorm

我们是grails的新手并且关注以下问题:

  1. 可伸缩性问题

  2. 为不同的应用程序使用相同的后端

  3. 所以坚持单个grails是个好主意,或者我们应该分开关注点,甚至使用其他框架如node.js来使用rest来实现前端。

    其次我不是很清楚,我们应该把业务逻辑放在grail app中。理想的地方应该是我认为的服务

    我们正在检查Angular.js,因为它似乎比gsp页面更快,前端的当前风格和与grail的集成也更容易。想要检查是否是正确的选项。

2 个答案:

答案 0 :(得分:10)

Grails非常适合快节奏的开发需求,当您对它有基本的了解时,您会喜欢它。您可以用任何框架/语言编写性能不佳的应用程序。我建议的一件事是深入了解Hibernate,它是底层的持久性库。如果您了解它是如何工作的,它应该可以帮助您避免在数据库级别犯下任何愚蠢的错误。

对于问题的第一部分,Web应用程序的可伸缩性实际上并不取决于您选择使用的语言/框架,而是取决于您的应用程序的构建方式。您可以在Grails中构建可伸缩的Web应用程序,就像在C ++中构建速度极慢的应用程序一样。如果Grails是您想要使用的框架,那么使用它;如果需要,你总是可以用Java或其他快速语言重写慢速部分。 (毕竟,这是Twitter对Scala的所作所为。)

在我们公司,我们所做的是使用grails作为客户端交互/许可服务器,并使用多个Node.js服务器进行分析。因此,客户端提供的所有内容都存储在grails服务器上,然后将功能数据发送到Node.js服务器集群以进行进一步处理。来自Node.js服务器的分析数据由grails服务器使用http builder获取,用于在仪表板上绘制图表和数据。

// -------------更新更新问题的答案----------------------

  • Node.js是服务器端技术,它不在前端即客户端工作
  • 在grails中,您可以在控制器中编写所有传入(到服务器)和传出(从服务器)的内容。
  • 当您的所有业务逻辑/计算/数据库查询都进入您的服务方法时。完成后,通过return语句将计算数据发送回控制器,控制器将在GSP上发送/显示它。
  • 关于你的角度JS问题,我会说你不能用角度JS替换GSP,因为GSP只不过是一个服务器端脚本,你在脚本中使用grails / groovy / java代码以及普通的HTML代码和它被渲染成完整的HTML并被发送到客户端。因此,您只能通过添加像Angular这样的前端MVC来增强其功能,并且无法替换它。功能明智的Angular是一流的框架。将任何类型的JS添加到您的GSP并享受它们。

P.S。 - 一旦你掌握了很容易做很多事情的GSP标签,你就会开始爱GSP。

答案 1 :(得分:3)

为了简单起见:您可以使用Grails构建整个app-stack。您可以以任何适当的方式拆分/联合您的服务。您可以使用任何疯狂的JS前端框架构建应用程序,或者仅使用REST API构建应用程序。或者将它们混合在一起。

此外,您可以使用plugins轻松模块化您的应用。关于它们的好处是,它们可以独立运行,这意味着您可以将该服务用作应用程序的一部分,或者在应用程序之外运行服务,这是您的决定,而不是框架限制!

更新:

Grails有一个非常重要的观点:Groovy是一种JVM语言。这意味着,您可以直接在项目中使用世界上的任何熔岩库。此外,您的开发人员必须只学习Groovy,因为它在整个应用程序中随处可用,无论是域类,服务还是GSP。