¿Está lista mi aplicación web de React para su lanzamiento?

Rate this content
Bookmark

Si necesitas una lista de verificación de lanzamiento como ingeniero frontend, esta es la charla a la que debes asistir. Antes del lanzamiento de una aplicación, es necesario asegurarse de que se hayan realizado pruebas de carga y rendimiento, seguimiento de usuarios, seguimiento de errores en el frontend, pruebas de seguridad para el frontend, junto con otras verificaciones similares. Aprende sobre estas actividades de última hora y qué conjunto de herramientas puede ser útil.

This talk has been presented at React Summit 2023, check out the latest edition of this React Conference.

FAQ

Es crucial asegurarse de que una aplicación esté lista para producción para mejorar la experiencia del usuario, mantener una buena reputación de la empresa, asegurar la seguridad de los datos del usuario y reducir costos y tiempo en la solución de errores.

Los recorridos clave se refieren a las principales características y funcionalidades de una aplicación que deben estar completamente operativas y funcionar como se espera, como los procesos de inicio de sesión o completar una compra.

Para probar recorridos clave en aplicaciones de React, se pueden utilizar herramientas de automatización como Cypress, Jest y Enzyme.

Para optimizar el rendimiento se pueden identificar y analizar web vitals, utilizar herramientas como Lighthouse y Webpagetest para rastrear la velocidad, y aplicar técnicas como la compresión de imágenes y la carga perezosa.

Antes del lanzamiento, es fundamental asegurar los certificados SSL, revisar los flujos de autenticación y encriptación de datos, utilizar análisis estático del código con herramientas como SonarQube y ESLint, y realizar pruebas de penetración para identificar vulnerabilidades.

La escalabilidad se refiere a la capacidad de una aplicación para manejar un aumento en el tráfico y usuarios. Se prueba estableciendo benchmarks de rendimiento y utilizando pruebas de carga con herramientas como Apache JMeter o Gatling.

El monitoreo en aplicaciones web implica configurar herramientas y sistemas de alerta para rastrear KPIs como el tiempo de respuesta del servidor y la tasa de error. Herramientas como DataDog y Browser Monitoring son comúnmente usadas para este propósito.

Aditi Verma
Aditi Verma
11 min
06 Jun, 2023

Comments

Sign in or register to post your comment.
Video Summary and Transcription
La charla de hoy analiza la preparación para la producción de aplicaciones web de React, haciendo hincapié en la importancia de la experiencia del usuario, la reputación, la seguridad y el costo. La lista de verificación para la preparación para la producción incluye pruebas de los recorridos clave, optimización del rendimiento, garantizar la seguridad mediante la revisión de código y pruebas de penetración, y asegurar la escalabilidad. Los requisitos no funcionales, las pruebas de rendimiento y el monitoreo también son cruciales para el lanzamiento de la aplicación. El proceso iterativo de lanzamiento de una aplicación implica compensaciones y la consideración de un MVP o un lanzamiento por fases.

1. Introducción a la Preparación para la Producción

Short description:

Hola a todos. Soy Aditi, una ingeniera senior en Mckenzie & Company Vietnam. Hoy discutiremos si tu aplicación web de React está lista para producción. La experiencia del usuario, la reputación, la seguridad y el costo son factores importantes a considerar. En un sector competitivo, el desarrollo rápido tiene ventajas pero también desventajas. Una lista de verificación de preparación para la producción ayuda a garantizar la preparación de la aplicación. El primer elemento de la lista de verificación son los recorridos clave, que incluyen identificar y probar características utilizando herramientas de automatización como Cypress, Jest y Enzyme.

Hola a todos. Soy Aditi. Soy una ingeniera senior en Mckenzie & Company Vietnam, y el tema del que estaremos hablando hoy es si tu aplicación web de React está lista para producción.

Como parte de mi trabajo, tuve la oportunidad de trabajar con el stack de JavaScript, y trabajé con Angular durante un año, y he estado trabajando con React desde entonces. Entonces, primero, necesitamos entender por qué necesitamos que nuestra aplicación esté lista para producción. Antes de sumergirnos en desglosar la lista de verificación de preparación para la producción, necesitamos entender cuáles son las razones para hacerlo.

Lo primero que viene a la mente es la experiencia del usuario. La experiencia del usuario puede variar según tu público objetivo. Puede ser alguien mayor, o alguien joven, o alguien de una generación diferente, pero en última instancia, se trata de mantenerlo simple e intuitivo. También está involucrada la reputación cuando hablamos de sitios web, ¿verdad? El sitio web de la empresa es el rostro de la empresa. Todos dependemos mucho de las reseñas de la aplicación, y como una generación tecnológica, necesitamos asegurarnos de que la aplicación sea receptiva. Además, la experiencia del sitio web no debe ser lenta, de lo contrario puede llevar a una mala reputación, y también desalentar a futuros usuarios potenciales. La seguridad es definitivamente siempre una parte crucial de una aplicación bien probada, y debemos asegurarnos de que los datos del usuario nunca estén en riesgo. El costo, bueno, solucionar errores o problemas en un entorno de producción siempre es más caro y más lleva más tiempo. Por lo tanto, hacerlo con anticipación realmente nos ahorraría tiempo y dinero.

Pasando a otro tema, estamos trabajando en un sector muy competitivo, ¿verdad? Entonces siempre hay ventajas de entregar algo muy rápido, pero también hay desventajas de hacer un desarrollo muy rápido. Por eso necesitamos usar una lista de verificación de preparación para la producción para asegurarnos de que nuestra aplicación esté lista para el lanzamiento o no. También he recomendado algunas herramientas y mejores prácticas que puedes seguir. Así que antes de sumergirnos, imaginemos que estamos en una carrera de autos y tenemos un punto de partida, tenemos una línea de meta que debemos alcanzar. Y la pista de carreras es en realidad nuestra preparación para la producción. Y los elementos de la lista de verificación son los puntos de control.

Entonces, el primer elemento de la lista de verificación serían los recorridos clave. Por recorridos clave, me refiero a que todas las características y funcionalidades deben estar en su lugar y funcionar como se espera. Primero, necesitamos identificar los recorridos clave. Pueden ser procesos de inicio de sesión, pueden ser completar una compra o enviar un formulario. Primero, escribiremos casos de prueba. Ahora, los casos de prueba deben simular todo el recorrido, el recorrido clave completo, incluyendo los pasos y también indicar los resultados esperados. Hoy en día hay muchas herramientas de automatización que podemos usar para probar nuestros recorridos clave como Cypress, Jest y Enzyme. Quisiera destacar especialmente la importancia de las pruebas de regresión. Al escribir pruebas de regresión, siempre podemos eliminar el error humano del proceso de pruebas y ahorrar tiempo en las pruebas nuevamente.

2. Optimized Performance, Security, and Scalability

Short description:

Si encontramos algún problema importante, podemos solucionarlo antes del lanzamiento. El siguiente elemento de la lista de verificación es el rendimiento optimizado. Necesitamos identificar el proceso de identificación de las métricas de rendimiento, realizar pruebas, analizar el informe e identificar áreas de preocupación. Podemos utilizar herramientas como Lighthouse, webpagetest, loadimpact y react profiler. A continuación, está la seguridad. Necesitamos realizar una revisión exhaustiva del código, realizar un análisis estático del código y realizar pruebas de penetración. Por último, la escalabilidad implica asegurarse de que la aplicación pueda manejar un gran tráfico y una gran base de usuarios.

Continuando, creo que el siguiente elemento de la lista de verificación sería el rendimiento optimizado. El rendimiento significa que tu aplicación debe cargarse correctamente, debe funcionar sin problemas, debe cumplir con todos los estándares de rendimiento aceptados. A menudo definimos los NFR o requisitos no funcionales al comienzo de nuestro proceso de desarrollo. Estos generalmente se refieren a funcionalidades como la escalabilidad, disponibilidad, confiabilidad, seguridad, usabilidad y todas estas cosas que no son realmente características clave pero que impactan la calidad general de nuestra aplicación.

Necesitamos asegurarnos de que nuestra aplicación sea probada y optimizada para el rendimiento. Primero, necesitamos identificar el proceso de identificación de las métricas de rendimiento. Estas se llaman web vitals. Pueden ser cosas como el tiempo de carga de la página, el tiempo hasta el primer byte, el mayor contenido visible, el primer contenido visible, el primer retraso de entrada, el cambio de diseño acumulativo. Todas estas son matrices que podemos evaluar. Una vez que las hayamos identificado, podemos utilizar una herramienta de pruebas para rastrear la velocidad y capacidad de respuesta de nuestra aplicación. Algunos problemas comunes que surgen suelen ser debido a imágenes grandes o activos grandes que estamos utilizando. Es posible que estemos utilizando algunas bibliotecas de JavaScript que no son necesarias o simplemente debido a un código ineficiente. Entonces, lo que necesitamos hacer es ejecutar estas pruebas. Necesitamos analizar el informe e identificar áreas de preocupación. Podemos utilizar herramientas como Lighthouse, webpagetest, loadimpact y el react profiler. Estas nos ayudan a encontrar los cuellos de botella de rendimiento o las vulnerabilidades relacionadas con eso. Ahora necesitamos trabajar en estas áreas de preocupación. Entonces, una cosa que podemos hacer para optimizar las imágenes es utilizar paquetes como tinypng, imageoptim para comprimir estas imágenes, reducir el tamaño para que se carguen más rápido. También podemos implementar la división de código, como la carga perezosa, y no solo podemos hacer carga perezosa en las rutas, sino también en los componentes internos. También podemos utilizar algo llamado webpack bundle analyzer que nos ayuda a encontrar los archivos y bibliotecas de JavaScript innecesarios, y podemos eliminarlos de nuestro código.

A continuación, estaría la seguridad. Entonces, la seguridad, necesitamos asegurarnos de que los certificados SSL estén en su lugar, los flujos de autenticación sean seguros y los datos estén encriptados. Una cosa que podemos hacer es realizar una revisión exhaustiva del código de estos flujos, específicamente la autenticación autorización, validación de datos, manejo de entrada, manejo de salida, todos estos deben ser revisados nuevamente, ¿verdad? Otra cosa que podemos hacer es el análisis estático del código, por lo que herramientas como SonarQube y ESLint son muy útiles en esto, y nos ayudan a encontrar cualquier vulnerabilidad relacionada con la inserción de código o cualquier práctica de código insegura que pueda haber en nuestro código en este momento. Las pruebas de penetración, básicamente, los atacantes pueden explotar la infraestructura de red, pueden explotar el mecanismo de autenticación, o cómo almacenamos nuestros datos, o la lógica general de la aplicación, por lo que necesitamos asegurarnos de pasar por pruebas de pruebas antes de entrar en producción. Las pruebas de seguridad avanzadas se pueden realizar utilizando el escaneo de vulnerabilidades y una de las herramientas que puedo recomendar es Nessus.

Continuando, el siguiente punto de control es la escalabilidad. Cuando digo escalabilidad, me refiero a que la aplicación debe estar lista para manejar un gran tráfico y una gran base de usuarios. Identificar los requisitos de escalabilidad básicamente habla de dos cosas, ¿verdad?