¿Cuál es la mejor forma práctica de agregar una característica/servicio importante a un proyecto Ruby on Rails de tamaño mediano existente?

StackOverflow https://stackoverflow.com/questions/2494039

Pregunta

Tengo un proyecto existente escrito en Ruby on Rails. Es una especie de solución de backend para la próxima incorporación importante al proyecto. Lo que quiero decir es que actualmente sirve para los administradores y ya tiene muchas características y archivos de rieles reales allí.

Ahora estoy planeando agregar la nueva parte "pública" que enfrenta la aplicación en Rails y me pregunto cuáles podrían ser las mejores soluciones. Podría pensar en los dos siguientes posibles, pero realmente agradecería si alguien que haya experimentado esto podría ponerme en la dirección correcta.

  • Cree una nueva aplicación web que se enfrente a la pública utilizando los mismos recursos que la aplicación web de backend estaba utilizando: ¿alguna ventaja y contras?
  • Simplemente agregue las nuevas funciones a la aplicación web de backend existente: ¿alguna ventaja y contras? (Estoy seguro de que esta opción hará que los archivos de la aplicación crezcan bastante, pero ¿debería importarme? ¿O no?

Solo he hecho pequeñas aplicaciones web en rieles antes y este es mi primera gran. Por favor, cualquiera, sus respuestas serán muy apreciadas.

Gracias.

¿Fue útil?

Solución

Ya tiene mucha lógica comercial en los modelos, por lo que comenzar una nueva aplicación significaría duplicar esa lógica, que es una pesadilla de mantenimiento.

Simplemente agregaría las piezas de frente público a su proyecto existente. No me preocuparía que la aplicación se vuelva grande. He trabajado en una aplicación muy grande y funciona bien. (177 tablas/modelos, controladores de 23+, etc ...)

Solo asegúrese de crear una buena manera de separar las partes internas de las externas, agregando un campo al modelo de usuario para indicar si son internas o externas, y luego como parte de la autenticación, limitando el acceso a las partes internas.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top