Mi producto tiene la siguiente estructura: sitio web, iOS, aplicaciones móviles Android, backend.
Hay un código común que utilizan todos los componentes anteriores. Digamos que tiene que cambiar una parte del código dentro de él (solo una vez en un lugar) para que los cambios aparezcan en todos los componentes.
Al mismo tiempo, si, por ejemplo, hay un error en el sitio web que requiere un cambio en este código común, también tenemos que probar las aplicaciones móviles para asegurarnos de que no haya fallas allí.
Ahora hacemos lanzamientos con poca frecuencia, y tenemos todos los componentes lanzados a la vez. Esto parece una forma ineficaz de hacer lanzamientos. Me gustaría lanzar cada producto por separado a su propio ritmo sin comprometer la calidad.
¿Alguna idea de cómo se puede hacer esto?
Como una decisión de este problema puede ser los siguientes pasos:
Por lo tanto, puede usar dicho método para mejorar solo un proyecto sin temor a romper sus otros proyectos.
Una de las reglas de oro de la entrega continua es:
Si algo es difícil, hazlo con frecuencia.
En este momento, le preocupa que la publicación en las distintas plataformas afecte la calidad. Si puedes aliviar ese miedo, entonces el problema desaparece.
estaría buscando:
Este enfoque requiere una inversión sustancial de tiempo y recursos, pero el beneficio es mucha más flexibilidad en la liberación y la capacidad de adaptarse rápidamente a los cambios.
Esto suena como un problema principalmente orientado al código. Desea que los componentes de su aplicación se acoplen libremente o se desacoplen por completo. Usando buenos principios de programación como responsabilidad única e inversión de dependencia, cambiar algo en un sistema no necesariamente tiene un impacto inmediato en todo lo demás. A partir de aquí, ya sea que su código común sea una biblioteca o algún tipo de servicio, puede usar un esquema de control de versiones para permitir actualizaciones que afecten a una plataforma pero no a otra.