Aula 10 - Qualidade de Código (Linters e Formatters) ✨
!!! tip "Objetivo" Objetivo: Entender como as ferramentas de análise estática garantem a padronização do código em equipe, evitando erros comuns e mantendo um estilo visual consistente.
1. O Código Além do Funcionamento 🧠
Não basta o código "funcionar". Para que um projeto dure anos e seja mantido por várias pessoas, ele precisa ser legível e seguir padrões.
🧩 Análise Estática
=== "Prevenção" Ferramentas de análise estática são o primeiro filtro de qualidade de um time. Elas leem seu código antes mesmo de você tentar rodá-lo (sem executá-lo), detectando anomalias e code smells (códigos mal estruturados).
=== "A Regra de Ouro" As regras são configuráveis. O time decide que "Toda função deve ter limite de 20 linhas" ou "Ninguém pode usar aspas duplas". O Linter se torna o policial automático que barra códigos fora do padrão no GitHub.
2. Linters vs Formatters: Qual a Diferença? ⚖️
Embora parecidos, eles resolvem problemas diferentes:
| Ferramenta | O que faz? | Exemplo |
|---|---|---|
| Linter (ESLint / Flake8) | Encontra erros de lógica e potenciais bugs. | Variável criada mas nunca utilizada. |
| Formatter (Prettier / Black) | Cuida do visual e do estilo do código. | Colocar ponto e vírgula, ajustar espaços. |
🛠️ Por que usar os dois?
O Formatter deixa o código bonito; o Linter garante que ele está correto e segue as boas práticas da linguagem.
3. O Fluxo de Correção (Mermaid)
graph TD
Code([Escrever Código]) --> Lint([Executar Linter])
Lint -- Erro Encontrado --> Fix([Corrigir Lógica])
Fix --> Lint
Lint -- OK --> Format([Executar Formatter])
Format --> Clean([Código Limpo e Padronizado])
4. Praticando no Terminal 💻
Simulando o uso do ESLint para encontrar erros e do Prettier para formatar:
$ npx eslint index.js
# index.js
# 5:12 error 'total' is assigned a value but never used (no-unused-vars)
$ npx prettier --write index.js
index.js 220ms (formatted)
5. Mini-Projeto: Configurando o Corretor Automático 🚀
Sua missão é ver a mágica da formatação automática no VS Code:
- Abra o VS Code e instale a extensão Prettier - Code Formatter.
- Vá em Settings (Ctrl + ,) e pesquise por
Format on Save. Ative essa opção. - Crie um arquivo chamado
bagunca.js. - Escreva um código propositalmente bagunçado (muitos espaços, aspas simples e duplas misturadas, sem identação).
- Salve o arquivo e observe o VS Code organizar tudo instantaneamente.
6. Exercício de Fixação 📝
- Básico: Qual a vantagem de uma equipe inteira usar o mesmo arquivo de configuração do Prettier?
- Básico: O que um Linter faz que um Formatter não consegue fazer?
- Intermediário: Por que dizemos que o Linter ajuda a evitar "bugs silenciosos"?
- Intermediário: Explique o conceito de "Clean Code" e como essas ferramentas ajudam a atingi-lo.
- Desafio: Pesquise o que é o arquivo
.eslintrce para que serve a seçãorules.
Próxima Aula: Vamos automatizar tudo com o CI/CD Moderno (GitHub Actions)! 🚀