我在rails应用程序上有一个ruby,并考虑将其移植到java。在此之前我应该考虑哪些事情?在所需的变更方面,这项任务有多难?
非常感谢那些走过这条道路的人的建议。
动机: 我有两个使用相同数据的Web应用程序。一个是java,另一个是rails。结果,他们都有数据库,许多东西来回发送并存储在复制的表中。作为补充,它极其缓慢。我无法将java移动到RoR,所以考虑将RoR移动到java(jvm)所需的内容。
答案 0 :(得分:11)
如果我在你的位置,我会尝试在JRuby中运行你的Ruby代码,这是在JVM上运行的Ruby实现。 It supports rails,这意味着您应能够获取代码并在JVM上运行它。
完成后,您可以开始在java中编写新功能,它应该透明地使用您的旧代码。您还可以开始用Java重写部分代码,而不会破坏可比性。
答案 1 :(得分:5)
移植它的动机是什么?
如果您需要与Java库集成,除了将整个应用程序移植到Java之外,还有许多其他选项。
如果你需要一个直接端口,那么(正如Chad所说)JRuby可能是最佳选择。
如果你想完全重写,但保留RoR范例,请使用Grails(一种允许Java虚拟机兼容的语言)查看Groovy,这是一个基于JVM的RoR等价物。你要在Java库中绑定)
答案 2 :(得分:2)
通常,切换核心组件或框架意味着您将基本上必须重新实现一些甚至许多应用程序。因此,您通常需要良好的原因。
如果我正确理解您的问题,您需要在没有Ruby但使用JVM的平台上进行部署。在这种情况下,我会让它以JRuby作为第一优先级运行,因为这种方法很可能需要最少量的工作。
答案 3 :(得分:0)
这似乎是一个明显的解决方案,但您是否尝试使用相同的数据库运行这两个应用程序?我的公司目前正在将我们的软件从PHP迁移到Rails,虽然我们逐个对组件进行重新编码,但我们让这两个应用程序使用相同的数据库。只要确保应用程序不冲突,就不需要来回发送数据。
答案 4 :(得分:0)
查看playframework.org - 这是一个完全用Java编写的甜蜜的Web框架,以及迄今为止我见过的最好的Java Rails-off。几天后,我将一个相当简单的应用程序移植到Playframework上。在某些方面,它比Rails更甜,因为它使用Annotations以类型安全的方式混合代码。如果您是具有Java背景的rails程序员,那么您几乎可以立即获得高效率,因为该框架直接映射到Rails世界。