簡體   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