Prosseguindo na customização do Vim através da parametrização do .vimrc, vamos falar um pouco sobre verificadores de sintaxe e formatadores de código. Para evitar que o artigo fique grande demais, decidi quebrá-lo em 2 partes.
Hoje, na parte VI da série, trataremos sobre definições acerca do tema proposto. Deixaremos para a parte VII, as questões relativas à instalação e configuração desses utilitários.
Verificadores de sintaxe e formatadores de código
O que são, onde moram, como vivem, o que comem.
Verificadores de sintaxe - Linters
Linter vem da palavra “lint” que significa “fiapo ou penugem”. O termo vem de um utilitário usado na programação em linguagem C, existente no UNIX.
A função de um utilitário ‘Lint’ é realizar uma análise estática do código com objetivo de apontar e produzir uma lista de erros, advertências (warnings) e pontos de melhoria. Você não vai querer produzir um tecido cheio de fiapos, não é mesmo?
Formatadores de código
Os formatadores de código são ferramentas que melhoram a legibilidade de um programa, aplicando regras de formatação em conformidade com as boas práticas de desenvolvimento para uma determinada linguagem.
Vamos supor por exemplo, que temos um código formatado da seguinte maneira:
if (a==b){ printf("x");}`
Ao rodar um formatador sobre o código, ele poderá melhorar a legibilidade:
if (a == b) {
printf("x");
}
No caso acima, o utilitário reformatou o código, colocando espaçamentos, identação, etc, melhorando sua legibilidade e organização.
Estratégias de utilização
O processo de escrita de código pode ser um tanto maçante e sujeito a erros por parte do programador.
Utilitários de verificação de erros e formatadores de código são ferramentas indispensáveis para aumentar a produtividade e a qualidade no desenvolvimento, pois:
- tornam o código mais legível reduzindo custo de manutenção
- poupam tempo na procura de erros simples
Quando um desenvolvedor vai utilizar um utilitário de verificação e formatação de código, ele pode fazê-lo a partir de 2 estratégias de trabalho distintas:
Síncrona:
O programador digita todo o código e então roda o utilitário de verificação ao salvar o arquivo.
- Vantagens:
- O programador pode se concentrar no código sem preocupar-se em parar para consertar erros. É como se ele dividisse o trabalho em duas etapas: Primeiro codificar, segundo corrigir.
- O programador pode executar a verificação do código em lote, verificando por exemplo, vários arquivos de um mesmo diretório.
- Desvantagens:
- o utilitário não força a mudança do comportamento do programador. Logo, a evolução do programador para geração de códigos com melhor qualidade, acabará sendo mais lenta.
- essa estratégia precisa ser realizada de forma pragmática. Ou seja, o programador deve ter disciplina suficiente para NUNCA, JAMAIS, NUNQUINHA, esquecer de executar a etapa de verificação, após o término da codificação.
Assíncrona:
À medida em que o programador vai digitando, o utilitário vai verificando o código e alertando sobre os erros.
- Vantagens:
- Ao terminar de codificar, o programador já terá um código com mais qualidade.
- Ao ser alertado por erros enquanto digita, o programador acaba se tornando melhor, pois vai tomando ciência dos erros que produz e assim vai ajustando seu comportamento. Podemos dizer que a estratégia assíncrona é um tanto quanto behavorista.
- O programador não precisará executar a verificação no final do trabalho. Ele até pode fazer isso, se quiser, mas a lista de erros a corrigir (retrabalho), será bem menor.
- Desvantagens:
- a produtividade do programador acaba sendo mais baixa, pois ele tenderá a parar para corrigir os erros à medida que os mesmos são indicados. Mesmo melhorando com o tempo, esta questão irá incidir. Somente o fato de um alerta aparecer enquanto o código é digitado, já pode ser suficiente para desviar parte da concentração.
- a parametrização dos utilitários para ficarem monitorando o código digitado é um pouco mais chata. Além disso, podem tornar o editor de códigos um pouco mais lento. Em alguns momentos o programador poderá perceber um “lag” durante a digitação, no momenot em que o utilitário corre sobre o código e detecta um erro.
Boas práticas de CI/CD
Bons programadores são antes de tudo, pragmáticos. Muitos optam por adotar tanto a estratégia de verificação assíncrona quanto a síncrona. Ou seja, eles deixam os utilitários de verificação trabalharem enquanto digita o código, mas não deixará de rodá-los novamente na hora de salvar o arquivo ou mesmo durante o processo de deploy.
Em ambientes de produção aliás, é muito indicado que os processos de CI/CD (integração contínua e deploy contínuo) incluam as etapas de verificação de erros e formatação, impedindo o build e deploy com erros de sintaxe ou código mal formatado, aumentando a estabilidade de aplicações em produção.
Analisadores de Sintaxe e formatadores de código no Vim
Existem vários plugins para formatar e verificar erros de código usando o editor Vim. É preciso cuidado ao instalar e utilizar esses plugins, pois os mesmos podem conflitar entre si, podendo acarretar o efeito inverso ao que se propõem.
No Vim, muitos programadores desistem de usar tais utilitários, justamente pela dificuldade em configurá-los para se obter o resultado esperado. No próximo artigo, falaremos sobre a instalação não conflitante de 3 plugins:
ALE - Plugin para monitoramento assíncrono de código ESLint - um utilitário de análise sintática de código Prettier - um utilitário de formatação de código.
Até lá…

