Queremos empezar a permitir que nuestros usuarios nos ayuden a probar nuestros cambios de funciones antes de una versión más amplia. Nuestra aplicación de rieles ya tiene roles, pero no sé cómo debemos implementar una función beta sin mover toda la aplicación.¿Cómo ofrezco una función beta para seleccionar usuarios? (rieles)
Algunas cuestiones que no puedo pensar en soluciones a:
- Una característica beta pueden requerir una migración de base de datos. ¿Cómo puede manejar esto cuando podría causar problemas con la aplicación existente?
- Cambiando plantillas y css/sass probablemente también lo cambie por las características existentes.
- Cambiar el código del modelo subyacente podría romper los controladores/interfaces existentes que dependen de él.
Una solución (una mala opción) es codificar en la nueva característica y envolverla en lógica que solo la muestra/usa si el usuario tiene el rol "beta". El problema con esto es cuando finalmente lo tomas en vivo, puedes tener que desenrollar/cambiar mucho para hacerlo. Esto es una pérdida de tiempo y podría introducir errores.
Otra solución es ejecutar una rama "beta" de la aplicación separada de un subdominio y enrutar a los usuarios con la función beta. El problema con esto es que la complejidad de los certificados ssl, los enlaces de correo electrónico y otros problemas dependientes del dominio hacen que esto sea un poco molesto para el mantenimiento (aunque no tan malo como la primera solución).
¿Cómo puedo ofrecer esto de la manera más eficiente para minimizar el trabajo adicional para mantener y luego cambiar la versión beta a la versión completa?
Gracias samerra, lo estoy haciendo de esa manera. Los usuarios pueden tener múltiples roles (administrativo, básico, premium, etc.) uno de los cuales será "beta". El problema al que me estoy enfrentando es que implementar funciones beta a veces requiere migraciones de datos y otras revisiones generales. Desafortunadamente, esto podría provocar que la versión original no beta de la aplicación sea incompatible (por ejemplo, si un campo se eliminó de la base de datos). En general, estoy preguntando cómo las personas manejan eso. – chrishomer