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?
Comments