Cloud Code Functions
Generar informes de complejidad en funciones de código en nube
10 min
cómo crear un informe que muestre la complejidad de tu código en la nube introducción esta sección te enseñará a generar un informe de complejidad de código de tu código en la nube utilizando plato el código en la nube debe ser eficiente desde el diseño como se llama muchas, muchas veces, un rendimiento ligeramente peor puede convertirse en un gran problema y afectar gravemente tu entorno de producción si te tomas el tiempo para diseñar tu código en la nube de manera eficiente, podrás atender más solicitudes utilizando servidores más pequeños, lo que puede llevar a enormes ahorros a lo largo del tiempo por otro lado, un código en la nube mal diseñado solo puede escalar en máquinas más grandes y costosas, lo que también tiene limitaciones esta situación puede y probablemente llevará a la necesidad de reescribir código y a más gastos a lo largo del tiempo por favor, tómese su tiempo para probar, realizar pruebas de carga y revisar constantemente los informes sobre la complejidad del código requisitos previos para completar este tutorial, necesitarás un entorno local con node js instalado para aplicar pruebas unitarias puedes seguir el tutorial oficial de nodejs para instalar node js con éxito en tu terminal una aplicación creada en back4app sigue el tutorial de crear nueva aplicación para aprender cómo crear una aplicación en back4app back4app command line configurado con el proyecto sigue el tutorial de configuración de cloud code para aprender cómo configurar el código en la nube para un proyecto primero, necesitamos hablar sobre plato normalmente comenzamos a desarrollar creando un conjunto más pequeño de funciones que dividen un gran problema en partes más pequeñas y fáciles de abordar este enfoque suele ser adecuado y estas funciones iniciales más pequeñas crecen con el tiempo, realizando operaciones más complejas y manejando más datos a medida que los datos crecen en tu aplicación, las tareas computacionales intensivas, como bucles y llamadas recursivas, se llaman cada vez más, lo que tiende a ralentizar la aplicación en casos severos, incluso puede congelar completamente la aplicación aquí es donde plato https //www npmjs com/package/plato entra en juego plato https //www npmjs com/package/plato es una herramienta de visualización de código fuente de javascript, análisis estático y complejidad que genera informes mostrando cuán compleja se está volviendo tu aplicación y dónde abordar correcciones para potencialmente acelerar procesos 1 instalando plato si tienes nodejs https //nodejs org/en/download/package manager/ y npm https //www npmjs com/ instalados en tu sistema, instalar plato https //www npmjs com/package/plato es tan fácil como escribir si no lo tienes, por favor instálalos antes de continuar 2 ejecutando plato ejecutar plato https //www npmjs com/package/plato después de la instalación consiste en escribir el siguiente comando desde el directorio donde está tu cloud code las opciones significan r recursivo, lo que significa que buscará en directorios y subdirectorios en busca de archivos d myreportfolder (salida) directorio plato creará un directorio llamado myreportfolder myreportfolder donde almacenará sus resultados t “my report for this app” título plato nombrará este informe my report for this app my report for this app esto es útil para crear múltiples informes a lo largo del tiempo y hacer un seguimiento x json excluir archivos json puedes indicarle a plato que ignore tipos de archivos para que se ejecute más rápido js buscar cualquier cosa con la extensión js para ser evaluada 3 obteniendo resultados en el myreportfolder myreportfolder creado por el comando anterior, encontrarás un index html index html que contiene el informe abre ese archivo en un navegador y encontrarás algo como esto en mi caso, solo tenía un archivo llamado main js main js , pero dependiendo de tu código, puedes tener más archivos desplázate hacia abajo hasta la archivos archivos sección y haz clic en el nombre del archivo que deseas abrir (main js en mi caso) esto abrirá el informe para ese archivo la mantenibilidad es un valor entre 0 y 100 que representa la facilidad relativa de mantener el código un valor alto significa mejor mantenibilidad la medida de dificultad está relacionada con la dificultad del programa para escribir o entender los errores estimados son los errores entregados de halstead, que son una estimación del número de errores en la implementación el peso de la función tiene dos métricas por complejidad esta métrica cuenta el número de caminos distintos a través de un bloque de código valores más bajos son mejores por sloc líneas de código fuente / líneas lógicas de código ahora puedes desplazarte hacia abajo y ver las alertas y posibles soluciones que se sugieren en mi caso, está diciendo que la sintaxis de función de flecha (=>)' solo está disponible en es6 (usa 'esversion 6') la sintaxis de función de flecha (=>)' solo está disponible en es6 (usa 'esversion 6') , lo cual no es un problema pero añadamos algo de código muy ineficiente a esa función y reevaluemos 1function getsquarerootof(numberone, numbertwo, numberthree){ 2 var finalresult; 3 4 var i = 0; 5 var j = 0; 6 var k = 0; 7 8 for (i = 0; i < 100; i ++){ 9 for (j = 0; j < 100; i ++){ 10 for (k = 0; k < 100; k++){ 11 var resultone = getsquarerootof(numberone); 12 var resulttwo = getsquarerootof(numbertwo); 13 var resultthree = getsquarerootof(numberthree); 14 finalresult = resultone + resulttwo + resultthree; 15 } 16 } 17 } 18} y evalúa el resultado como podemos ver, la complejidad de esta función es 4, lo cual está bien cuanto mayor sea el número que obtengas, más compleja es la función y más debes asegurarte de que sea eficiente plato https //www npmjs com/package/plato también te advertirá sobre puntos y comas faltantes y otros errores potenciales de javascript conclusión tener una herramienta como plato https //www npmjs com/package/plato revisando la complejidad de tu código y reestructurando continuamente el código en la nube para que sea lo más rápido y eficiente posible puede llevar a enormes ahorros a lo largo del tiempo tú y todos los desarrolladores deberían incluir este paso o algo similar en su proceso de desarrollo para asegurarse de obtener el máximo rendimiento en sus solicitudes