Con la mejora del rendimiento del navegador y la adopción constante de la nueva interfaz de programación HTML5, el volumen de JavaScript en las páginas web está aumentando gradualmente. Sin embargo, un programa mal escrito tiene el potencial de romper todo el sitio web, frustrar a los usuarios y alejar a los clientes potenciales.
Los desarrolladores deben usar todas las herramientas y técnicas que puedan usar para mejorar la calidad de su código y confiar en que cada ejecución es predecible. Este es un tema profundo en mi corazón y he trabajado durante años para encontrar un conjunto de pasos a seguir durante el proceso de desarrollo para garantizar que solo se pueda publicar el código de más alta calidad.
Simplemente siga estos siete pasos para mejorar en gran medida la calidad de su proyecto JavaScript. Con este flujo de trabajo, se reducirán los errores y se realizarán muchas optimizaciones de procesamiento, lo que brinda a los usuarios una experiencia de navegación agradable.
01. Código
Primero, llame al modo estricto de ECMAScript5 y una declaración de "modo estricto" en su función, y use el modo de diseño de este módulo. En el cierre de la función de auto-ejecutación, el uso de variables globales debe minimizarse a través del módulo de código independiente de Sandbox y a través de cualquier dependencia externa para mantener el módulo de variable global claro y conciso. Solo use solo la biblioteca y marcos de terceros establecidos, probados, bien probados, bien considerados, y mantenga sus funciones a un pequeño valor, separando cualquier lógica o datos de negocios de sus operaciones de módulo y otro código de capa de vista.
Los proyectos más grandes con múltiples desarrolladores deben seguir un conjunto de principios de codificación establecidos, como la Guía de estilo JavaScript de Google, y requieren reglas de gestión de código más fuertes, incluida la gestión de dependencia estricta a través de una biblioteca como requerirjs, utilizando la administración de paquetes utilizando el módulo asíncrono (AMD), utilizando la administración de paquetes de paquetes utilizando el modo Bower o Jam de la biblioteca) para referirse a versiones específicas de sus dependientes y adoptar los diseños estructurales, como los patrones estructurales, como los patrones estructurales, como los modos de los modos de Omserver, como los modelos de Omserver. Comunicación acoplada entre diferentes módulos de código. Esta también es una idea acertada: use un sistema de sistemas de repositorio de código, como GIT o subversión, para que su código respalde en la nube a través de algunos servicios, como el código fuente o los frijoles mágicos, proporcione la capacidad de restaurar las versiones anteriores y crear una rama de código para proyectos más avanzados para realizar diferentes funciones, fusionarlos antes de completarlos.
02. Archivo
Use formatos de bloque de anotación estructurados como YuidoC o JSDOC para la funcionalidad del archivo, para que cualquier desarrollador pueda comprender su propósito sin estudiar su código, lo que puede reducir malentendidos. El uso de la sintaxis de Markdown puede tener comentarios y explicaciones más ricos y largos. Use la herramienta de línea de comandos asociada para generar automáticamente un documento en el sitio web: según estas opiniones estructurales, es consistente con cualquier modificación realizada en su código.
03. Análisis de pista
Ejecute una herramienta de análisis de código estático en su código regularmente, como Jshint o JSLint. Estas verificaciones sobre defectos de codificación conocidos y posibles errores, como olvidar usar patrones estrictos o hacer referencia a variables no declaradas, y entregares o semicolones faltantes. Corrija cualquier problema con los controles de herramientas para mejorar la calidad de su código. Intente configurar las opciones predeterminadas para su equipo de proyecto para mejorar los estándares de codificación, como sangrar cada línea por espacios, dónde colocar aparatos ortopédicos rizados y usar cotizaciones simples o dobles en todo el archivo de código.
04. Prueba
Una prueba unitaria es una de las funciones realizadas por una pequeña función independiente: ejecute una de las funciones de la base del código principal de su entrada específica para confirmar que genera un valor esperado. Para aumentar su confianza, el código escribirá marcos utilizados como esperados, como Jasmine o Qunit para cada prueba de unidad funcional, utilizando parámetros de entrada esperados y no anticipados. ¡Pero no olvides esas situaciones de borde!
Ejecute estas pruebas en múltiples navegadores en múltiples sistemas operativos, lo que le permite acelerar las pruebas en máquinas virtuales en la nube en sus demandas aprovechando este servicio, como Browserstack o Sauce Labs. Estos dos servicios proporcionan una API que permite que sus pruebas unitarias se ejecuten automáticamente en múltiples navegadores al mismo tiempo, y una vez que se completen, le devolverán los resultados. Como beneficio adicional, si su código se almacena en GitHub, puede tomar BrowserSwarm, una herramienta que ejecutará automáticamente sus pruebas unitarias cuando envíe su código.
05. Medición
Herramientas de cobertura de código, como la medida de Estambul, qué líneas de código se ejecutan cuando su prueba unitaria se ejecuta en su función, informándolo como un porcentaje del número total de líneas de código. Ejecutar una herramienta de cobertura de código en sus pruebas unitarias y agregar pruebas adicionales puede aumentar su puntaje de cobertura al 100%, lo que le brinda mayor confianza en su código.
La complejidad de una función se puede medir utilizando la métrica de complejidad de Hallstead: la ecuación establecida por el científico informático Morris Hallstead en la década de 1970. La complejidad de una función se cuantifica en función de los bucles, las ramas y la función que contiene: la complejidad de una función se puede medir utilizando las medidas de complejidad de Halstead. Cuando esta puntuación compleja disminuye, cuanto más fácil sea comprender y mantener esta función, reduciendo la posibilidad de errores. La visualización de los datos generados de la herramienta de comando mide Platón y la complejidad del código JavaScript ayuda a determinar la funcionalidad que se puede mejorar al almacenar resultados anteriores, lo que permite el seguimiento de mejoras de calidad a lo largo del tiempo.
06. Automatización
Use corredores de tareas como Grunt para operar automáticamente el proceso de compilación de archivos, análisis, pruebas, cobertura y generación de informes de complejidad, lo que le ahorra tiempo y esfuerzo y aumenta sus posibilidades de resolver cualquier problema de calidad que surja. La mayoría de las herramientas y marcos de prueba destacados en esta publicación están asociados con Grunt, lo que puede ayudarlo a mejorar la calidad de su flujo de trabajo y código sin tener que mover un dedo.
07. manejar excepciones
Al mismo tiempo, en algún momento, su código tendrá un error cuando se ejecute. Use la instrucción "Pruebe ... Catch" para manejar correctamente los errores de tiempo de ejecución y el impacto del comportamiento limitante en su sitio web. Use un servicio de red para registrar errores que ocurren mientras se ejecutan. Y use esta información para agregar nuevas pruebas unitarias para mejorar su código y eliminar estos errores uno por uno.
Pasos para el éxito
Estos siete pasos me ayudan a crear parte del código del que estoy más orgulloso en mi carrera hasta ahora. También son una buena base para el futuro. En su propio proyecto, prometemos utilizar estos pasos para producir un código JavaScript de alta calidad, para que podamos trabajar juntos para mejorar la red y conducir al éxito paso a paso.