o que é um linter? Em suma, um linter é uma ferramenta para ajudá-lo a melhorar o seu código. O conceito de linter não é exclusivo do JavaScript. Ainda assim, eu diria que a maioria das pessoas que tentam aprender sobre linters estão interessadas nos que visam JavaScript (ou, mais geralmente, línguas dinamicamente digitadas.)

no post de hoje, nós respondemos à questão do título, e muito mais. Começamos por definir o termo “linter”.,”Vais entender o que é esta coisa e como veio a ser. Em seguida, falamos sobre os benefícios de linters e avançar para falar sobre os diferentes tipos de cheques que oferecem.

finalmente, nós mostramos vários exemplos de linters à sua disposição, dar algumas dicas práticas sobre como começar, e terminar com algumas considerações finais.vamos começar.o que é um Linter? A Brief Overview

Let’s start by defining what a linter is. Como você leu na introdução, um linter é uma ferramenta para ajudá-lo a melhorar o seu código. Mas de que forma faz isso?, A resposta é: analisando seu código fonte procurando por problemas.

o termo linter vem de uma ferramenta originalmente chamada “lint”que analisou o código fonte C. O cientista da computação Stephen C. Johnson desenvolveu esta utilidade em 1978, quando ele trabalhou no Bell Labs.

tanto a ferramenta lint original, bem como Utilitários similares anteriores, tinha o objetivo de analisar o código fonte para chegar a otimizações de compilador. Ao longo do tempo, ferramentas semelhantes a fios começaram a adicionar muitos outros tipos de verificações e verificação.,

no entanto, como mencionamos durante a introdução, linters não estão restritos a linguagens compiladas. Pelo contrário: poderíamos dizer que os linters são muito mais valiosos para linguagens interpretadas, uma vez que não há compilador para detectar erros durante o tempo de desenvolvimento.

vantagens de Linting

acabou de aprender a definição de linter. Você agora também sabe quando este tipo de ferramenta foi inventado, e por quem. Já deves ter pelo menos uma ideia geral do que um linter pode fazer pelo teu código., Mas em termos mais práticos, quais são os benefícios que este tipo de ferramenta pode proporcionar? Aqui estão algumas:

  • Menos erros em produção
  • Legível, de fácil manutenção e mais consistente do código
  • Menos discussões sobre o código de estilo e estética escolhas durante as revisões de código
  • medição Objetiva de qualidade de código
  • Mais segura e de alto desempenho de código

A próxima seção aborda alguns tipos de verificações que “linters” fornecer. Depois de lê-lo, você vai entender como linters fornecer os benefícios acima.,

tipos de verificações os Linters fornecem

Como você acabou de ler, a ferramenta original analisava o código para permitir otimizações para compiladores, mas ao longo do Tempo, ferramentas mais avançadas e completas foram lançadas. Hoje em dia, temos miríade de linters diferentes, que fornecem muitos tipos de cheques. Vamos passar rapidamente por alguns deles.

erros de sintaxe

o tipo mais básico e mais vital de verificações que um linter pode fornecer São verificações de erro de sintaxe quando se trata de JavaScript e outras linguagens interpretadas., Os desenvolvedores nem devem empurrar o código para a linha principal sem que ele passe verificações de sintaxe.

uma maneira de conseguir isso é usar ganchos pré-commit que impedem os usuários de empurrar seu código quando a verificação do linter indica que há problemas com o código.outro tipo vital de verificação que os linters fornecem é a adesão às normas de codificação. Algumas pessoas podem considerar isto uma preocupação puramente estética, mas estariam erradas., Ter um único estilo consistente de codificação é benéfico para diminuir a carga cognitiva de leitura, compreensão e manutenção de código. Uma base de código que tenha um estilo de código consistente será mais fácil de entender, e os desenvolvedores que a usam serão menos propensos a introduzir bugs.

é por isso que existem linters que se especializam em verificar codebases para a adesão a estilos de código. Algumas ferramentas são opinadas, ou seja, vêm com um conjunto pré-definido de regras e convenções que não podem ser alteradas., Por outro lado, existem ferramentas que podem ser altamente configuráveis, permitindo que o usuário adapte a ferramenta aos seus estilos de codificação preferidos.

problemas potenciais (também conhecidos como cheiros de código)

cheiros de código são sinais de que algo pode estar errado com o seu código. É incrivelmente útil ter uma ferramenta para detectar esses sinais automaticamente, para que você possa investigá-los mais, se necessário.

Por exemplo, muitas pessoas—incluindo eu—consideram funções longas como um cheiro de código. Então, você pode configurar seu linter para detectar funções que são mais longas do que um dado número de linhas.,

outro cheiro de código frequentemente citado é o código que é demasiado complexo. Mas não estamos falando de complexidade de uma forma subjetiva, mas muito objetiva. Complexidade ciclomática é uma métrica de código útil que representa o número de possíveis caminhos de execução dentro de uma função. Linters pode calcular a complexidade ciclomática de suas funções e sinalizar aqueles que são mais elevados do que um certo limiar.

verificações de segurança

por último, mas não menos importante, temos segurança, que é, sem dúvida, a faceta mais crítica de uma aplicação moderna, especialmente uma aplicação web., Errar, e as consequências podem ser catastróficas, não só em relação ao dinheiro e reputação ,mas também legais (pense GDPR e regulamentos semelhantes.)

Felizmente, esta é outra área onde linters pode ser de ajuda, uma vez que existem ferramentas que fornecem importantes verificações de segurança.

compreendendo a análise estática

explicámos o que são os linters e porque são úteis. Além disso, cobrimos os principais tipos de linters. Você está agora pronto para aprender sobre alguns exemplos de ferramentas de linting para uma variedade de usos e linguagens de programação alvo.,

Before we get there, though, let’s take a brief divression to talk about static analysis, since this term appears in the next section, and we have not defined it yet.então, o que é análise estática? Você pode pensar em análise estática como uma depuração pré-execução. A análise estática consiste em usar ferramentas que analisam seu código fonte procurando por erros, falta de adesão a regras ou convenções, ou outros problemas potenciais.

a secção seguinte mostra exemplos de linters categorizados de acordo com o tipo de verificação que realizam., As entradas categorizadas em análise estática referem-se principalmente ao primeiro e terceiro tipos de linters listados na seção acima.

exemplos de Linters

vamos agora brevemente mencionar alguns exemplos de linters. Vamos mostrar exemplos para diferentes linguagens de programação, categorizadas pelo tipo de verificação que eles fornecem. Tenha em mente que algumas ferramentas podem oferecer mais de um tipo de verificação, de modo que é a razão por que algumas ferramentas aparecem em mais de uma categoria.,>

  • StandardJS para JavaScript
  • PHPMD para PHP
  • StyleCop para C#,
  • “Linters” para a Segurança

    • Gosec para Ir
    • Bandido para Python
    • LGTM para vários idiomas, incluindo JavaScript, Python, e C#

    “Linters” para Convenções de Codificação / Codificação de Formatação

    • mais Bonita para JavaScript
    • Rubocop para Ruby
    • StyleCop para C#,

    “Linters” no JavaScript: Como Começar

    Antes de encerrar o artigo, queremos dar a você uma breve, mas guia prático sobre como começar com acúmulo em JavaScript., Uma vez que estamos a falar de JavaScript, não é surpresa que haja muitas ferramentas para você escolher. Já que temos de escolher um, vamos com o ESLint.

    instalando a ESLint

    primeiras coisas primeiro: vamos instalar o linter. O ESLint é instalado via npm, o que significa que você deve ter o nó.js instalado. Se você ainda não o tem, baixe-o e instale-o para que possamos continuar.

    com nó.js instalado, estamos prontos para instalar o ESLint via npm., the following command:

    1
    npm install eslint –global

    However, this isn’t the approach recommended in their documentation., Em vez disso, você provavelmente deve instalar o ESLint em uma base por projeto.,ory for your project:

    1
    mkdir eslint-sample-app

    Then, cd into the directory and run the command below to create a package.,JSON file (ele será necessário ao longo da estrada.)

    1
    npm init

    a Ngp vai pedir-lhe várias perguntas., Basta carregar em enter para usar a resposta padrão para todos eles.,fez, executando o comando:

    1
    npx eslint –init

    Quando você executar o comando acima, ESLint irá pedir-lhe para o que você quer usá-lo para., As opções são: verificar apenas a sintaxe, verificar a sintaxe e encontrar problemas, e verificar a sintaxe, encontrar problemas e aplicar o estilo de código.

    vamos com a última opção. Use as teclas de cursores para alterar as opções e digite para confirmar. A ESLint irá então querer saber quais os tipos de módulos que o seu projecto usa. As respostas são:

    • módulos JavaScript
    • Módulos CommonJS
    • nenhum destes

    escolha módulos JavaScript e continue. Depois disso, ele lhe pergunta qual o framework que o seu projeto usa., As respostas, mais uma vez, são três:

    • Reagir
    • Vue
    • Nenhum destes

    No nosso caso, vamos escolher a opção “nenhum”. A próxima pergunta é uma pergunta “sim/não”: o seu projecto usa um script? Pressione ” N ” para não. Depois disso, ele lhe pergunta se seu código corre no navegador ou no nó.

    ESLint então lhe pergunta Como escolher uma maneira de definir um estilo de código para o seu projeto. Ele oferece-lhe três possibilidades: usar um guia de estilo popular, responder a perguntas sobre suas preferências de estilo, ou inspecionar o seu .ficheiros js. Escolha a primeira opção., Então você será convidado a escolher entre três estilos: AirBNB, Standard, e Google. Para este tutorial, vamos escolher o Google.

    ESLint irá então perguntar qual o formato que prefere para a sua configuração. Escolhe o YAML. Finalmente, quando lhe perguntarem se deseja transferir o estilo de código seleccionado usando o npm, responda “Sim”.”

    usando o ESLint para verificar um ficheiro

    após o download estar completo, você estará pronto para usar o ESLint para verificar um ficheiro. Mas para isso, precisas de um ficheiro para verificar. Se por acaso tiveres um .o ficheiro js está algures por aí, copia-o para o directório do projecto., Alternativamente, você pode clonar este repositório, contendo um único arquivo, e usá-lo para o seu teste.,

    Para verificar o arquivo, você pode usar o seguinte comando:

    JavaScript

    1
    npx eslint caminho-para-o-seu-arquivo.,js

    Este é o resultado que obtenho ao executar o comando direccionado para a saudação.,arquivo js você pode fazer o download do repositório no GitHub:

    1
    2
    3
    4
    5
    6

    F:\demos\eslint-demo\greeter.,js
    2:3 erro faltando comentário JSDoc require-jsdoc
    3:1 erro Esta linha tem um comprimento de 86. Máxima permitida é de 80 max-len
    10:4 de erro Inesperado ‘isso’ não-inválido-este
    ✖ 3 problemas (3 erros, avisos 0)

    Como você pode ver, Eu tenho três erros e sem avisos.o que é um Linter? Uma grande ferramenta para o seu Toolbelt

    neste post, examinamos o conceito de uma ferramenta linter. Agora você tem uma idéia sólida do que linters são e por que você deve adotar um., Além disso, você aprendeu sobre diferentes tipos de ferramentas de linter e exemplos de cada categoria, visando várias linguagens de programação diferentes.

    além de tudo isso, agora você sabe como começar com uma ferramenta de linting popular para JavaScript: ESLint.quais são os próximos passos?, Há várias coisas que você pode aprender como fazer a seguir:

    • Desabilitar regras
    • Ativar uma regra, como um aviso ou um erro
    • Integrar acúmulo em seu processo de compilação
    • opção de configuração Avançada
    • Criar as suas regras personalizadas

    Você também pode, é claro, experimentar outros “linters”. Só porque escolhemos o ESLint para este guia, isso não significa que devas ficar com ele.

    finalmente, não se esqueça que linting, embora surpreendentemente valioso, é apenas mais uma arma em seu arsenal., Você não deve esquecer sobre testes automatizados, revisão de código, refactoring, e muitas outras práticas, técnicas e ferramentas à sua disposição na luta interminável contra o caos em sua base de código.

    E entre todas as práticas, técnicas e ferramentas que você pode alavancar para tornar sua base de código melhor, não podemos deixar de testar de ponta a ponta, que é um tipo frequentemente negligenciado de testes. E isso é uma pena. Com a ferramenta certa para ajudá-lo, o teste de qualidade de ponta a ponta pode ser um poderoso aliado em sua luta contra a entropia de código.

    Articles

    Deixe uma resposta

    O seu endereço de email não será publicado. Campos obrigatórios marcados com *