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