La nostra azienda ha iniziato con un singolo prodotto, un'applicazione di binari supportata da alcuni servizi java, quindi ha deciso di volere un altro prodotto inizialmente notevolmente diverso rispetto al primo, ma con il passare del tempo ci siamo resi conto che stanno iniziando a convergere, e fare un cambio di codice in uno richiede un cambio di codice simile all'altro per una nuova funzionalità/correzione di bug. Questo sta ovviamente diventando un dolore.Combinazione di 2 app per binari a una singola base di codici
In alcuni casi abbiamo gemme che condividono alcune di queste funzionalità, ma va oltre rubino in javascript, css, ecc ..
così sto con il compito di fondere queste due applicazioni in una sola base di codice. Penso che alla fine ci piacerebbe che fosse un'unica app con accesso al ruolo basato sui permessi, ma che arriverà molto più tardi.
Il mio primo pensiero per unirli rapidamente è quello di creare due motori di rotaie e condividere le librerie comuni tra di loro. Penso che questo sia il modo più veloce per combinare il codice, trovare sezioni comuni e iniziare a condividere.
Il mio primo problema è come instradare tra le app. Un'app utilizza un singolo nome di dominio che non cambia mai, l'altra app ha molti domini. Qualcuno può suggerire come posso indirizzare una particolare richiesta ad una particolare app in modo che possano rimanere separate per iniziare mentre condividono una base di codice comune di libs?
Oppure, se qualcuno ha altri suggerimenti su come combinare queste applicazioni, sono tutto orecchie.
Sono entrambi Rails 2.3.10 applicazioni in esecuzione JRuby 1.5.3, ma siamo aperti a possibilmente aggiornamento a Rails3 se che renderebbe le cose molto più facile o più pulito (cioè con una migliore integrazione Rack)
I non ho fatto alcuna programmazione in Rack ma non mi fa mai male imparare se questo renderà la nostra vita più facile.
Rack sarebbe una soluzione di distribuzione e, probabilmente, non è la soluzione qui. – Chirantan
rack è il middleware giusto? stavo pensando che potrebbe intercettare la richiesta e indirizzare in modo appropriato? ma di nuovo non ne so molto – brad