¿En qué consisten las mejoras en la estabilidad de PrestaShop 1.7?
¡PrestaShop mejora la estabilidad de su última versión 1.7!
Como ya seguramente sabías, esta actualización del software se lanzó en diciembre de 2018. De hecho, "PrestaShop 1.7.5.0" es la versión secundaria más reciente de este proyecto disponible para su descarga.
Para crearla, nos hemos basado principalmente en nuestra comunidad y en el continuo feedback que ellos nos dan, al igual que hacen con las herramientas de actualización y migración.
Esta versión ofrece nuevas funcionalidades y mejoras, tanto para el back-office como para el front-office.
Asimismo, implementa optimizaciones en cuanto a:
- Posicionamiento SEO.
- Previsualización dinámica de los resultados de búsqueda de Google para tu producto.
- Tiempos de carga de las páginas optimizados.
- ...y mucho más.
Pero el trasfondo de todo esto es mucho mayor, por lo que entraremos en más detalles a lo largo de este artículo, ¡te lo cuento a continuación!
¿Cuáles son las mejoras de estabilidad en las versiones 1.7?
Desde que lanzamos PrestaShop 1.7.5.0, hemos recibido muchas preguntas sobre la estabilidad de esta nueva versión.
Claudia Rodríguez, embajadora de PrestaShop en México, hizo la siguiente consulta:
La versión 1.7.5 me iba bien. ¿Tenéis información que despeje las dudas sobre la estabilidad?
En este artículo, aprovecho la pregunta de Claudia para aclarar la definición real de “estabilidad del software” y cómo los equipos de PrestaShop han mejorado los procesos de prueba del software para mejorar su estabilidad.
» Estable como “sin errores”
PrestaShop v1.7.5.0 resuelve 114 errores conocidos (aquí la fuente).
Esto, si lo cuantificamos, es más del doble que la versión secundaria anterior, la "1.7.4.0" (compruébalo aquí).
De hecho, los problemas de calidad que se encontraron poco después del lanzamiento de PS 1.7.4.0, nos obligaron a lanzar tres versiones de revisión en rápida sucesión.
Esto no ocurrió con la 1.7.5.0. De hecho, como no se encontraron errores críticos tras el lanzamiento inicial, la primera versión de revisión de la 1.7.5 (la 1.7.5.1) se publicó dos meses después de la 1.7.5.0.
Por tanto, queda probado que PS 1.7.5.0 es muy fiable, ya que no necesitó revisiones urgentes.
¿Qué mejoras hemos añadido entre las versiones 1.7.4.0 y 1.7.5.0?
Nos dimos cuenta de que era extremadamente importante ofrecer a la comunidad tiempo suficiente para probar nuevas versiones.
De esta forma, las regresiones pueden corregirse antes de su lanzamiento, no después.
Por eso, a partir de la 1.7.5.0, empezamos a ofrecer un periodo beta público de un mes sin restricciones (la segunda fase de prueba del software en la que una muestra del público objetivo prueba el producto) para las nuevas versiones secundarias.
Con la 1.7.5.0, usamos ese tiempo adicional para recopilar comentarios e informes de errores que nos han enviado colaboradores y agencias socias.
Este es el periodo beta más largo que hemos tenido.
El hecho de que no necesitáramos lanzar una versión de revisión rápidamente tras su publicación prueba que este periodo nos ha ayudado enormemente a estabilizar y consolidar esta nueva versión.
Durante el mes que esta versión beta estuvo a disposición de los usuarios del software con el fin de encontrar errores, los programadores y el equipo de preguntas y respuestas también estaban atareados probando la versión beta de esta versión.
» Estable como “probado a conciencia”
PrestaShop 1.7 ha introducido el uso de pruebas automatizadas en el proyecto:
- Las pruebas de unidad verifican fragmentos de código para comprobar que se comportan correctamente de forma aislada.
- Más pruebas de integración comprueban que la base de código (en conjunto) funciona bien.
- Tests descentralizadas que automatizan las acciones del navegador para garantizar que, desde el punto de vista del usuario, la aplicación funciona como es debido.
Estas pruebas permiten al equipo de programación detectar rápidamente cuándo alguna parte del sistema deja de funcionar y se ejecutan para cada pull request (contribución de código) en GitHub.
El número de pruebas aumenta con cada versión nueva de PrestaShop, y el equipo de desarrollo mejora de forma continua el sistema que las ejecuta.
Todo esto se puede ver en GitHub (y además, la comunidad puede poner su granito de arena).
Además, ahora el proceso de control de calidad es muy preciso y sólido.
Siempre que un programador quiera modificar el código fuente (para corregir algo o añadir un comportamiento nuevo que pueda ser útil para los usuarios), envía un pull request en GitHub.
Lo primero que se hace es analizar de forma automática esta contribución para garantizar que:
- El estilo de código es correcto.
- Las pruebas de unidad, de integración y descentralizadas no interrumpen con esta nueva versión del código.
- El código se puede integrar en la base de código sin crear problemas.
Nota: El pack completo de pruebas descentralizadas no se ejecuta para cada PR porque tarda mucho (8 horas como mínimo) en abarcar la aplicación completa.
No obstante, sí que se ejecuta cada noche durante el proceso de “compilación nocturna”, en el que creamos y probamos el código fuente automáticamente cada noche.
Por eso, si hay algo que deja de funcionar debido al cambio que se ha integrado, a la mañana siguiente tendremos un informe en el que veremos qué es para poder corregirlo.
Los informes de las compilaciones nocturnas y pruebas están disponibles aquí.
Si las pruebas automatizadas se superan correctamente, un programador central revisará el pull request, para comprobar que el cambio que se ha enviado es correcto y útil.
Si se detectan problemas, el revisor hablará con el colaborador para corregirlos.
En algunos casos, el programador central podría pedir ayuda a otras personas a las que concierna el problema:
- El equipo de diseño (si el pull request modifica el diseño de PrestaShop).
- El equipo de productos (si modifica el comportamiento de PrestaShop).
- Otros programadores o miembros de la comunidad.
¿Qué ocurre cuando se acaba con la revisión de código?
Cuando se termina de revisar el código y se aprueba (quizá tras algunos cambios), llega el turno del equipo de calidad, que pondrá a prueba la pull request para verificar que el código enviado se comporta correctamente desde el punto de vista del usuario Y que no estropea otras funciones que funcionaban bien anteriormente.
En el futuro, la mayor parte de esta tarea estará automatizada, pero de momento necesitamos combinar el control de calidad automático y manual. Si se encuentran problemas, el analista de control de calidad hablará con el colaborador para corregir el pull request.
También se llevan a cabo otras verificaciones, como aprobar nueva terminología, por ejemplo.
Dado que la localización es una funcionalidad importante de PrestaShop, si un pull request modifica textos o contenido de la aplicación (lo que afecta a su traducción), deberá ser aprobado también por el gestor de contenidos.
Si se aprueba todo, el pull request se integrará en la base de código.
Como puedes ver, gran parte del trabajo se dedica a reducir al mínimo el riesgo de que los cambios en el código introduzcan nuevos errores.
Por supuesto que es inevitable que se produzcan, pero la mayoría de las veces, para hacer PrestaShop 1.7 estable, cuando se introduce una regresión, el equipo de control de calidad la detecta y la corrige antes del lanzamiento.
El equipo de control de calidad comprueba las pull request al detalle probando casos de uso especial como multitienda, multiidioma, idiomas que se escriben de derecha a izquierda...
Algunos colaboradores nos han comentado que preferían el método antiguo, donde los pull requests se integraban tras pasar una revisión ligera o incluso sin revisión.
Esa época no va a volver. Hemos optado por la senda de mejorar la calidad y la estabilidad cada vez más, y por mucho que este proceso sea pesado y largo, tenemos la intención de mantenerlo, porque se ha demostrado su alta fiabilidad.
» Estable como “sobre una base sólida”
La versión 1.7 trata de migrar PrestaShop de un framework web personalizado al framework Symfony estándar del sector.
Este proceso es muy largo, pero los beneficios serán inmensos, incluyendo la estabilidad. Symfony es uno de los frameworks más usados en aplicaciones PHP (PHP es el lenguaje que se ha usado para programar PrestaShop).
Lo mantienen algunos de los mejores programadores del mundo, está sometido a unos procesos de calidad y estabilidad muy meticulosos (en los que nos hemos inspirado) y es uno de los dos frameworks web PHP más famosos (el otro es Laravel).
¿Qué función cumple exactamete "Symfony"?
La introducción de Symfony nos permite olvidarnos de la carga de trabajo que supone mantener un framework personalizado, que consume un tiempo valiosísimo que podríamos invertir en trabajar en lo que mejor se le da a PrestaShop:
- Gestionar el carrito y pedidos.
- Calcular precios e impuestos.
- Generar facturas.
Usar un framework de código abierto probado y conocido nos permite centrarnos en nuestro código empresarial principal con mayor eficiencia y disfrutar al mismo tiempo de la estabilidad de un framework reconocido en todo el mundo.
Al usar éste (en lugar de nuestro propio framework) para impulsar PrestaShop, nos confiamos a la calidad de su trabajo, ampliamente reconocida.
Cuando se encuentran errores en Symfony, el equipo de profesionales de su plataforma se encarga de corregirlos.
Cuando se encuentran problemas de rendimiento, ellos también se encarga de enmendarlos.
Al usar este framework, nos beneficiamos de todo el conocimiento y la experiencia de su equipo para mejorar PrestaShop, en lugar de hacer el mismo trabajo nosotros mismos.
En este caso, seguimos el enfoque “enanos aupados a hombros de gigantes” y “no reinventes la rueda”, que está más que demostrado que funciona.
También podríamos hablar de nuestro proceso de gestión de problemas de seguridad, pero esto no está relacionado con la estabilidad de 1.7.
Conclusión
Nos preocupa enormemente la seguridad del software de PrestaShop.
Siempre que se encuentre una vulnerabilidad, se convierte en la prioridad absoluta de todo el equipo de desarrollo (programadores, producto, control de calidad) para corregirla y lanzar la corrección lo antes posible.
Esperamos que este artículo sobre las mejoras en la estabilidad de las versiones 1.7, haya conseguido aclarar qué es un software estable y cómo los equipos de PrestaShop invierten en pruebas automáticas y en la migración a Symfony, para ofrecer a nuestros usuarios un eCommerce mejor y más estable.
Descarga ya PrestaShop 1.7.5 y accede a todas las nuevas funcionalidades, que te ayudarán a ahorrar tiempo en actividades recurrentes de gestión de la tienda, por ejemplo.
Esta nueva versión incorpora mejoras importantes en cuanto a productividad y rendimiento, y es un paso adelante real en términos de redes sociales y móviles.
Imágenes principales By Freepik.