Наша компания начала с одного продукта, приложения rails, поддерживаемого некоторыми java-сервисами, затем решила, что им нужен другой продукт, который изначально значительно отличался от первого, но со временем мы поняли, что они начинают сходиться, и изменение кода в одном требует аналогичного изменения кода в другом для исправления новой функции/ошибки. Это явно становится болью.
В некоторых случаях у нас есть драгоценные камни, которые разделяют некоторые из этих функций, но они выходят за рамки ruby в javascript, css и т. д.
Поэтому мне поручили объединить эти два приложения в одну кодовую базу. Я думаю, что в конечном итоге мы хотели бы, чтобы это было одно приложение с доступом на основе ролей, но это произойдет намного позже.
Моей первой мыслью быстро собрать их вместе было создать два движка rails и разделить между ними общие библиотеки. Думаю, это самый быстрый способ объединить код, найти общие разделы и начать делиться.
Моя первая проблема заключается в том, как маршрутизировать между приложениями. Одно приложение использует одно доменное имя, которое никогда не меняется, другое приложение имеет много доменов. Может ли кто-нибудь предложить, как я могу направить конкретный запрос в конкретное приложение, чтобы они могли оставаться отдельными для запуска при совместном использовании общей кодовой базы библиотек?
Или, если у кого-то есть другие предложения о том, как объединить эти приложения, я внимательно слушаю.
Это оба приложения Rails 2.3.10, работающие под управлением JRUBY 1.5.3, но мы открыты для возможного обновления до Rails3, если это значительно упростит или упростит работу (например, с лучшей интеграцией Rack).
Я никогда не занимался программированием Rack, но никогда не помешает научиться, облегчит ли это нашу жизнь.