Портирование рельсов в Яву - PullRequest
2 голосов
/ 19 декабря 2009

У меня есть приложение ruby ​​on rails и я подумываю о портировании его на java. Какие вещи я должен рассмотреть до этого? Насколько сложна эта задача с точки зрения необходимых изменений?

Любой совет от людей, которые шли по этому пути, с благодарностью.

Мотивация: У меня есть два веб-приложения, использующие одни и те же данные. Один в Яве, другой - на рельсах. В результате у них обоих есть базы данных, и многие вещи отправляются туда-сюда и хранятся в скопированных таблицах. Как дополнение это очень медленно. Я не могу переместить Java в RoR, поэтому думаю о том, что потребуется, чтобы переместить RoR в Java (это jvm).

Ответы [ 5 ]

11 голосов
/ 19 декабря 2009

Если бы я был на вашем месте, я бы попытался запустить ваш код Ruby в JRuby , который является реализацией Ruby, работающей на JVM. Он поддерживает rails , что означает, что вы должны иметь возможность взять свой код и запустить его на JVM.

Как только это будет сделано, вы можете начать писать новые функции в Java, и это должно прозрачно работать с вашим старым кодом. Вы также можете начать переписывать часть своего кода на Java, не нарушая сопоставимость.

5 голосов
/ 19 декабря 2009

Какова мотивация для портирования этого?

Если вам нужно интегрироваться с библиотеками Java, существует множество вариантов, помимо переноса всего приложения на Java.

Если вам нужен прямой порт, то (как показал Чад) JRuby может быть подходящим вариантом.

Если вы хотите выполнить полное переписывание, но сохранить парадигму RoR, проверьте Grails , который является эквивалентом RoR на основе JVM с использованием Groovy (виртуальная машина Java). совместимый язык, который позволяет связывать в библиотеках Java)

2 голосов
/ 19 декабря 2009

Как правило, отключение основного компонента или инфраструктуры означает, что вам, по сути, придется переопределить некоторые или даже многие из ваших приложений. Следовательно, обычно вам нужна хорошая причина для этого.

Если я правильно понимаю ваш вопрос, вам нужно развернуть на платформе без Ruby, но с JVM. В этом случае я бы включил JRuby в качестве самого первого приоритета, поскольку с очень высокой вероятностью подход требует минимального объема работы.

0 голосов
/ 18 октября 2010

Посетите playframework.org - это приятный веб-фреймворк, полностью написанный на Java, и лучший плагиат Rails на Java, который я когда-либо видел. Через несколько дней я перенес довольно простое приложение на Playframework. В некотором смысле он слаще Rails из-за того, что он использует аннотации для смешивания кода безопасным способом. Если вы программист rails с фоном Java, вы будете работать почти мгновенно, потому что фреймворк напрямую связан с миром Rails.

0 голосов
/ 21 декабря 2009

Это может показаться очевидным решением, но пытались ли вы запустить оба приложения с одинаковой базой данных? Моя компания в настоящее время переводит наше программное обеспечение с PHP на Rails, и хотя мы перекодируем компоненты по одному, мы позволяем обоим приложениям использовать одну и ту же базу данных. Нет необходимости отправлять данные туда и обратно, если вы убедитесь, что приложения не конфликтуют.

...