繁体   English   中英

如何使Ruby程序与Java程序一起工作?

[英]How to make a Ruby program work with a Java program?

这不是一个问题,而更像是我想了解的有关如何使Ruby程序与Java程序一起工作的一系列事情。

事情是这样的:我们有两个团队。 其中一项工作在Java上,并用Java实现其代码和模块。 我们在Ruby中也是如此。 我们应该有一组通用的接口,并在我们的Ruby程序中使用它们的一些代码,而他们将在其Java程序中使用我们的一些Ruby代码。

将这两个模块连接为一个通用模块时,要记住哪些事项? 我想这比直接回答更像是指南或一套指南。 因此,请耐心等待,不要报告或关闭此问题。 谢谢!

更新:

是的,我们将使用RESTful服务。 我不需要任何编码帮助。 我想要的只是您的贡献,您可能会从使用两种不同语言的编码模块并将它们与通用接口互连的经验中获得。

这就是我想知道的全部内容。 虽然这确实是我的一个课堂项目,但我认为如果在某处有指导方针会更好,这样也可以帮助其他人。

在您描述的情况下,我倾向于使用JRuby,以便您的Ruby代码可以直接与Java互操作。 您还可以使系统的Ruby / Java部分使用JSON或类似的东西通过套接字进行通信,但是这样做会带来性能成本复杂性成本。 (性能提升是否真的有所不同取决于Ruby / Java部分之间的接口有多“细粒度”-处理单个请求需要多少个Ruby-to-Java或Java-to-Ruby调用。 )

在JRuby中,您可以加载JAR文件并使用其中定义的(Java)类,就好像它们是Ruby类一样。 您也可以采用另一种方式-您可以在Java应用程序中像使用“库”一样使用JRuby来评估Ruby代码。

您可能应该要么1)用Java编写“主”应用程序,然后将Ruby部件写为主应用程序调用的“库”,要么2)用Ruby编写主应用程序,然后将Java部件编写为库。 如果您具有从Java代码到Ruby以及从Ruby到Java的循环依赖关系,这将使您的代码库难以理解。

这是一个很大的问题,所以我将不具体说明如何完成。 我可以给你一个想法,如何去做。 假设您正在询问Web应用程序...

  • 数据库端基于Java的Web应用程序
  • 基于Java的Web应用程序实际上没有客户端的“视图”。 它不会生成常规的CSS,HTML视图。
  • 相反,它基于URL创建了JSON对象
  • Rails使用JSON对象,就好像它是来自数据库的数据一样。 它可以从中创建模型。
  • 基本上,Rails每次需要访问数据库时都会对基于Java的Web应用程序进行API调用。
  • 最大的缺点是您不再可以使用ActiveModel,ActiveRecords等,Rails附带的所有优点
  • 上行? 对于复杂的数据库查询,可能更快

基本上,这就是像Twitter和Amazon这样的公司所做的,当他们说他们在后端使用Java而在前端使用Rails时。 再次重申,这是一项巨大的工作,您肯定要考虑成本和收益。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM