Unser Unternehmen begann mit einem einzigen Produkt, einer Rails-App, die von einigen Java-Services unterstützt wurde. Dann entschied man sich für ein anderes Produkt, das sich zunächst deutlich von dem ersten unterschied, aber im Laufe der Zeit Wir haben festgestellt, dass sie konvergieren, und wenn Sie einen Code in einen Code ändern, müssen Sie einen ähnlichen Code ändern, um einen neuen Feature/Bug-Fix zu erhalten. Dies wird offensichtlich zu einem Schmerz.Kombination von 2 Rails-Apps zu einer einzigen Codebasis
In einigen Fällen wir Edelsteine, die einen Teil dieser Funktionalität teilen, aber es geht über Rubin in Javascript, CSS etc ..
So bin ich mit Zusammenführung dieser beiden Anwendungen in einer Code-Basis beauftragt. Ich denke, wir würden uns wünschen, dass es eine einzige App mit einem permissionbasierten Rollenzugriff ist, aber das wird viel später kommen.
Mein erster Gedanke, sie schnell zusammen zu bringen, ist, zwei Rails-Engines zu erstellen und gemeinsame libs zwischen ihnen zu teilen. Ich denke, das ist der schnellste Weg, den Code zu kombinieren, gemeinsame Abschnitte zu finden und mit dem Teilen zu beginnen.
Mein erstes Problem ist jedoch, wie man zwischen den Apps routet. Eine App verwendet einen einzelnen Domainnamen, der sich nie ändert, die andere App hat viele Domains. Kann jemand vorschlagen, wie ich eine bestimmte Anfrage an eine bestimmte App weiterleiten kann, damit sie getrennt bleiben und starten können, während sie eine gemeinsame Codebase von Bibliotheken teilen?
Oder, wenn jemand andere Vorschläge hat, wie man diese Apps kombinieren kann, bin ich ganz Ohr.
Sie sind beide Rails 2.3.10 Anwendungen JRuby 1.5.3 laufen, aber wir sind offen für möglicherweise zu Rails3 aktualisieren, wenn diese Dinge machen würde wesentlich einfacher oder Reiniger (dh mit einer besseren Rack-Integrations)
I Ich habe keine Rack-Programmierung gemacht, aber es tut mir nie weh, zu erfahren, ob das unser Leben leichter macht.
-Rack wäre eine Deployment-Lösung sein und wahrscheinlich nicht die Lösung hier. – Chirantan
Rack ist die Middleware richtig? Ich dachte, dass es die Anfrage abfangen und passend routen könnte? aber wieder weiß ich nicht viel darüber – brad