Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
具有Java中间/后端的RoR web层_Java_Ruby On Rails_Ruby_Spring - Fatal编程技术网

具有Java中间/后端的RoR web层

具有Java中间/后端的RoR web层,java,ruby-on-rails,ruby,spring,Java,Ruby On Rails,Ruby,Spring,我正在寻找一些关于在分层体系结构中使用不同语言的建议/反馈。现在讨论的体系结构是一个全java堆栈(db、中间层和web层),使用Spring将所有内容绑定在一起。我们一直在讨论在web层使用RubyonRails的想法,但我想知道以前是否有人这样做过(可能使用不同的语言/技术)。切换到RoR的思想是为了提高Web层的开发速度,但是我的初步分析是,它也会降低中间层的开发速度。 我试图获得数据点的一些问题是: 是否有小型开发团队在类似的体系结构中实际使用了混合语言方法 你为什么用这种方法?什么有

我正在寻找一些关于在分层体系结构中使用不同语言的建议/反馈。现在讨论的体系结构是一个全java堆栈(db、中间层和web层),使用Spring将所有内容绑定在一起。我们一直在讨论在web层使用RubyonRails的想法,但我想知道以前是否有人这样做过(可能使用不同的语言/技术)。切换到RoR的思想是为了提高Web层的开发速度,但是我的初步分析是,它也会降低中间层的开发速度。 我试图获得数据点的一些问题是:

  • 是否有小型开发团队在类似的体系结构中实际使用了混合语言方法
  • 你为什么用这种方法?什么有效,什么无效
  • 您将如何处理接口和模型(可能使用Google protocol buffers或Apache Thrift之类的工具)
  • 使用这种方法还有其他好处或缺点吗

您可能会对本演示感兴趣:

虽然我没有RoR方面的经验,但我们已经将Django作为前端层采用了类似的方法,我们将使用基于java的服务进行大量事务处理后端

我们在django模型中定义了DB,用django视图/jquery开发了web前端,显然得到了一个免费的管理站点

在java端,我们运行hibernate反向工程任务,为java代码生成DB访问类。必要时,我们使用自制的JSON over AMQP RPC机制在python和java组件之间进行通信

这种方法有起有落。对于我们来说,由于我们没有使用任何大型java框架,它使我们能够访问解决方案的快速/轻量级web前端,并且可以轻松地使用Django模型格式(我非常喜欢)对数据库进行建模

在不利的一面,我们确实遇到了一些关于hibernate反向工程配置的棘手问题(如果您正在做任何非bog标准的事情,尤其是与一些Django-manytomy关系相关的事情,那么这会很复杂)

我注意到您提到,您已经有了一个基于Spring的体系结构和web层。我不是这方面的专家,但这可能会给您带来一些值得探索的机会,比如groovy/grails或SpringMVC,在版本3中,它们被认为是非常简化的,并且开发速度更快。这可能会给你所需要的胜利

一个折衷方案可能是研究一些RoR启发的Java工具,如

底线是,您必须根据自己的应用程序需求和团队能力进行调用。这对我们很有效,我认为这是一个正确的决定,但如果您的团队已经掌握了Java和Spring技能,那么Spring 3可能是一个不错的选择(但请咨询Spring专家:-)


罗布

谢谢你,罗布。我们正在使用Spring3(与webflow和mvc一起使用)。我们中的一些人有相当多的Spring经验,但一些开发人员觉得它比RoR(我对RoR没有太多经验)慢,所以我们正在尝试评估我们的选择。