¿Qué es un linter? En resumen, un linter es una herramienta para ayudarte a mejorar tu código. El concepto de linter no es exclusivo de JavaScript. Aún así, yo diría que la mayoría de las personas que tratan de aprender sobre linters están interesadas en los que se dirigen a JavaScript (o, más generalmente, lenguajes de tipo dinámico).)

en el post de hoy, respondemos la pregunta del título, y más. Comenzamos definiendo el término «linter.,»Entenderás qué es esto y cómo llegó a ser. Luego, hablamos de los beneficios de los linters y procedemos a hablar de los diferentes tipos de cheques que ofrecen.

finalmente, le mostramos varios ejemplos de linters a su disposición, le damos algunos consejos prácticos sobre cómo comenzar y concluimos con algunas consideraciones finales.

comencemos.

¿Qué es un Linter? Una breve descripción

comencemos definiendo qué es un linter. Como has leído en la introducción, un linter es una herramienta para ayudarte a mejorar tu código. Pero, ¿de qué manera lo hace?, La respuesta es: analizando el código fuente buscando problemas.

el término linter proviene de una herramienta originalmente llamada «lint»que analizaba el código fuente de C. El científico informático Stephen C. Johnson desarrolló esta utilidad en 1978 cuando trabajaba en Bell Labs.

tanto la herramienta original lint, así como utilidades similares anteriores, tenían el objetivo de analizar el código fuente para llegar a optimizaciones del compilador. Con el tiempo, las herramientas similares a pelusa comenzaron a agregar muchos otros tipos de comprobaciones y verificación.,

sin embargo, como hemos mencionado durante la introducción, los linters no están restringidos a los lenguajes compilados. Al contrario: podríamos decir que los linters son mucho más valiosos para los lenguajes interpretados ya que no hay compilador para detectar errores durante el tiempo de desarrollo.

ventajas de Linting

acabas de aprender la definición de linter. Ahora también sabes cuándo se inventó este tipo de Herramienta, y por quién. Probablemente ya tengas al menos una idea general de lo que un linter puede hacer por tu código., Pero en términos más prácticos, ¿cuáles son los beneficios que este tipo de herramienta puede proporcionar? Estos son algunos:

  • menos errores en la producción
  • código legible, mantenible y más consistente
  • Menos discusiones sobre el estilo del código y las opciones estéticas durante las revisiones del código
  • medición objetiva de la calidad del código
  • Código más seguro y de rendimiento

la siguiente sección cubre algunos de los tipos de verificaciones que proporcionan los linters. Después de leerlo, comprenderá cómo los linters proporcionan los beneficios anteriores.,

tipos de comprobaciones los Linters proporcionan

como acaba de leer, la herramienta original lint analizó el código para habilitar optimizaciones para los compiladores, pero con el tiempo, se lanzaron herramientas más avanzadas y completas. Hoy en día, tenemos miles de linters diferentes, que proporcionan muchos tipos de controles. Repasemos rápidamente algunos de ellos.

Errores de sintaxis

el tipo más básico y vital de comprobaciones que un linter puede proporcionar son verificaciones de errores de sintaxis cuando se trata de JavaScript y otros lenguajes interpretados., Los desarrolladores ni siquiera deberían enviar código a la línea principal sin que pase verificaciones de sintaxis.

una forma de lograr esto es usar ganchos pre-commit que evitan que los usuarios empujen su código cuando la verificación de linter indica que hay problemas con el código.

cumplimiento de los estándares de código

otro tipo vital de verificación que proporcionan los linters es el cumplimiento de los estándares de codificación. Algunas personas podrían descartar esto como una preocupación puramente estética, pero estarían equivocados., Tener un único estilo de codificación consistente es beneficioso para disminuir la carga cognitiva de lectura, comprensión y mantenimiento del código. Una base de código que tenga un estilo de código consistente será más fácil de entender, y los desarrolladores que la usen serán menos propensos a introducir errores.

Es por eso que hay linters que se especializan en verificar las bases de código para la adherencia a los estilos de código. Algunas herramientas son obstinadas, es decir, vienen con un conjunto predefinido de reglas y convenciones que no se pueden cambiar., Por otro lado, hay herramientas que pueden ser altamente configurables, permitiendo al usuario adaptar la herramienta a sus estilos de codificación preferidos.

problemas potenciales (también conocidos como olores de código)

los olores de código son señales de que algo podría estar mal con su código. Es increíblemente útil tener una herramienta para detectar esos signos automáticamente, para que pueda investigarlos más, si es necesario.

por ejemplo, muchas personas, incluido yo, consideran que las funciones largas son un olor a Código. Por lo tanto, podría configurar su linter para detectar funciones que son más largas que un número determinado de líneas.,

otro olor a Código frecuentemente citado es el código que es demasiado complejo. Pero no estamos hablando de complejidad de una manera subjetiva, sino muy objetiva. La complejidad ciclomática es una métrica de código útil que representa el número de posibles rutas de ejecución dentro de una función. Los Linters pueden calcular la complejidad ciclomática de sus funciones y marcar aquellas que son más altas que un cierto umbral.

controles de seguridad

Por último, pero no menos importante, tenemos la seguridad, que es, sin duda, la faceta más crítica de una aplicación moderna, especialmente una aplicación web., Si se equivoca, las consecuencias pueden ser catastróficas, no solo en lo que respecta al dinero y la reputación, sino incluso legales (piense en GDPR y regulaciones similares.)

Afortunadamente, esta es otra área donde los linters pueden ser de ayuda ya que hay herramientas que proporcionan verificaciones de seguridad importantes.

entendiendo el análisis estático

hemos explicado qué son los linters y por qué son útiles. Además, hemos cubierto los principales tipos de linters. Ahora está listo para aprender sobre algunos ejemplos de herramientas de linting para una variedad de usos y lenguajes de programación de destino.,

antes de llegar, sin embargo, hagamos una breve digresión para hablar del análisis estático, ya que este término aparece en la siguiente sección, y aún no lo hemos definido.

entonces, ¿qué es el análisis estático? Puede pensar en el análisis estático como una depuración previa a la ejecución. El análisis estático consiste en utilizar herramientas que analizan su código fuente en busca de errores, falta de adherencia a reglas o convenciones, u otros problemas potenciales.

la siguiente sección muestra ejemplos de linters categorizados según el tipo de verificación que realizan., Las entradas clasificadas en análisis estático se refieren principalmente al primer y tercer tipo de linters enumerados en la sección anterior.

Ejemplos de Pelusa

ahora Vamos a mencionar brevemente algunos ejemplos de pelusa. Mostraremos ejemplos para diferentes lenguajes de programación, categorizados por el tipo de comprobación que proporcionan. Ten en cuenta que algunas herramientas pueden ofrecer más de un tipo de verificación, por lo que esa es la razón por la que algunas herramientas aparecen en más de una categoría.,>

  • StandardJS para JavaScript
  • PHPMD para PHP
  • StyleCop para C#
  • Borra de Seguridad

    • Gosec para Ir
    • Bandido para Python
    • LGTM para varios lenguajes, como JavaScript, Python, y C#

    Borra de Convenciones de Codificación Codificación / Formato

    • más Bonita para JavaScript
    • Rubocop para Ruby
    • StyleCop para C#

    Borra en JavaScript: Cómo empezar

    Antes de terminar el artículo, queremos dar una breve pero práctica guía sobre cómo empezar con que dejan mucho menos mota en JavaScript., Dado que estamos hablando de JavaScript, no es de extrañar que haya muchas herramientas para que elijas. Ya que tenemos que elegir uno, vamos con ESLint.

    instalando ESLint

    Lo primero es lo primero: instalemos el linter. ESLint se instala a través de npm, lo que significa que debe tener Node.js instalado. Si aún no lo tienes, descárgalo e instálalo para que podamos continuar.

    Con nodo.JS instalado, estamos listos para instalar ESLint a través de npm., the following command:

    1
    npm install eslint –global

    However, this isn’t the approach recommended in their documentation., En su lugar, probablemente debería instalar ESLint por proyecto.,ory for your project:

    1
    mkdir eslint-sample-app

    Then, cd into the directory and run the command below to create a package.,archivo json (será necesario en el futuro.)

    1
    npm init

    Npm le hará varias preguntas., Simplemente presione enter para usar la respuesta predeterminada para todos ellos.,lo hizo, mediante la ejecución de:

    1
    npx eslint –init

    Al ejecutar el comando anterior, ESLint le preguntará para qué quieres usar., Las opciones son: para comprobar la sintaxis solamente, para comprobar la sintaxis y encontrar problemas, y para comprobar la sintaxis, encontrar problemas y hacer cumplir el estilo de código.

    Vamos con la última opción. Utilice las teclas de flecha para cambiar las opciones y entrar para confirmar. ESLint querrá saber qué tipos de Módulos utiliza su proyecto. Las respuestas son:

    • JavaScript módulos
    • CommonJS Módulos
    • Ninguno de estos

    Elegir JavaScript módulos y continuar. Después de eso, le pregunta qué marco utiliza su proyecto., Las respuestas, de nuevo, son tres:

    • React
    • Vue
    • ninguno de estos

    en nuestro caso, vamos a elegir la opción «Ninguno». La siguiente pregunta es «sí / no»: ¿tu proyecto usa Typescript? Presione » N » para no. Después de eso, le pregunta si su código se ejecuta en el navegador o en el nodo.

    ESLint te pregunta Cómo elegir una forma de definir un estilo de código para tu proyecto. Le ofrece tres posibilidades: usar una guía de estilo popular, responder preguntas sobre sus preferencias de estilo o inspeccionar su .archivos js. Elige la primera opción., Luego, se te pedirá que elijas entre tres estilos: AirBNB, Standard y Google. Para este tutorial, vamos a elegir Google.

    ESLint le preguntará qué formato prefiere para su configuración. Elige a YAML. Finalmente, cuando se le pregunte si desea descargar el estilo de código seleccionado utilizando npm, responda «Sí.»

    uso de ESLint para comprobar un archivo

    Una vez finalizada la descarga, estará listo para utilizar ESLint para comprobar un archivo. Pero para eso, necesitas un archivo para revisar. Si por casualidad tienes una .archivo JS colgando en algún lugar, copiarlo en el directorio del proyecto., Alternativamente, puede clonar este repositorio, que contiene un solo archivo, y usarlo para sus pruebas.,

    Para ver el archivo, utilice el comando siguiente:

    JavaScript

    1
    npx eslint ruta de acceso a su archivo.,js

    Este es el resultado que obtengo a partir de la ejecución del comando dirigido por el saludo.,archivo js que se puede descargar desde el repositorio en GitHub:

    1
    2
    3
    4
    5
    6

    F:\demos\eslint-demo\greeter.,error JS
    error 2:3 Falta comentario JSDoc require-jsdoc
    error 3:1 esta línea tiene una longitud de 86. Máxima permitida es de 80 max-len
    10:4 error Inesperado ‘este’ no-válida-este
    ✖ 3 problemas (3 errores, 0 advertencias)

    Como puede ver, Tengo tres errores ni advertencias.

    ¿Qué es un Linter? Una gran herramienta para su cinturón de herramientas

    en este post, hemos examinado el concepto de una herramienta linter. Ahora tienes una idea sólida de lo que son los linters y por qué deberías adoptar uno., Además, ha aprendido sobre diferentes tipos de herramientas linter y ejemplos de cada categoría, dirigidos a varios lenguajes de programación diferentes.

    además de todo eso, ahora ya sabes cómo empezar con una popular herramienta de linting para JavaScript: ESLint.

    ¿cuáles son los próximos pasos?, Hay varias cosas que puede aprender a hacer a continuación:

    • deshabilitar reglas
    • habilitar una regla como advertencia o error
    • integrar linting en su proceso de compilación
    • opción de configuración avanzada
    • Crear sus reglas personalizadas

    También puede, por supuesto, experimentar con otros linters. Solo porque hayamos elegido ESLint para esta guía, eso no significa que deba quedarse atascado con ella.

    finalmente, no olvides que linting, aunque increíblemente valioso, es solo otra arma en tu arsenal., No debe olvidarse de las pruebas automatizadas, la revisión de código, la refactorización y muchas otras prácticas, técnicas y herramientas a su disposición en la lucha interminable contra el caos en su base de código.

    y entre todas las prácticas, técnicas y herramientas que puede aprovechar para mejorar su base de código, no podemos evitar las pruebas de extremo a extremo, que es un tipo de prueba que a menudo se pasa por alto. Y eso es una pena. Con la herramienta adecuada para ayudarlo, las pruebas de extremo a extremo de calidad pueden ser un poderoso aliado en su lucha contra la entropía de código.

    Articles

    Deja una respuesta

    Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *