Aula 10: Qualidade de Código (Linters e Formatters) ✨
🎯 Nossa Missão
- Entender a análise estática de código.
- Dominar o ESLint (Linter).
- Dominar o Prettier (Formatter).
- Padronizar o ambiente de desenvolvimento do time.
🤔 Por que a qualidade importa?
- Legibilidade: Código é mais lido do que escrito.
- Manutenibilidade: Mais fácil de consertar no futuro.
- Conformidade: Todo o time escreve do mesmo jeito.
- Menos Bugs: Erros bobos são pegos na hora.
📖 O que é Análise Estática?
Analisar o código sem executá-lo. * Procura por padrões perigosos. * Verifica se regras de estilo estão sendo seguidas. * Informa o desenvolvedor instantaneamente no editor.
🛑 Erros Comuns que Linters Pegam
- Variáveis declaradas mas nunca usadas.
- Chamar funções que não foram definidas.
- Uso de
varem vez deconst/letno JS. - Falta de ponto e vírgula (onde é obrigatório).
🕵️♂️ ESLint: O Detetive do Código
- O Linter mais popular do mundo JavaScript.
- Extremamente configurável.
- Possui conjuntos de regras prontos (ex: Airbnb, Google).
🎨 Prettier: O Artista do Código
- A única preocupação dele é o estilo visual.
- Onde colocar o espaço? Onde quebrar a linha?
- O Prettier é "opinativo": ele decide o melhor visual para você não perder tempo discutindo.
⚖️ Linter vs Formatter
mermaid graph LR L[Linter - ESLint] --- Rules1[Qualidade/Logica] F[Formatter - Prettier] --- Rules2[Estilo/Aparencia] L --- Ex1(Variaveis nao usadas) F --- Ex2(Uso de Aspas Simples)
⚙️ Configurando o ESLint
Arquivo .eslintrc.json
💎 Configurando o Prettier
Arquivo .prettierrc
⌨️ Integração com VS Code
- Instala as extensões oficiais.
- Ativa o "Format on Save".
- Mágica: Você escreve o código bagunçado, aperta
Ctrl + Se ele se organiza sozinho!
🏗️ Extensões de Regras
Muitos frameworks trazem suas próprias regras de lint: * eslint-plugin-react * eslint-plugin-vue * eslint-plugin-security
🛠️ Comando fix
O ESLint pode consertar os erros para você!
* Resolve automaticamente problemas de indentação e erros simples de sintaxe.🤫 Por que não usar console.log em produção?
- Exibe dados sensíveis no navegador.
- Diminui a performance do app.
- O Linter nos ajuda a lembrar de remover logs de teste.
🧠 Dívida Técnica
Cada regra ignorada hoje é um problema amanhã. * O Linter ajuda a manter a dívida sob controle. * Evita o "Código Espaguete".
🤝 EditorConfig: O Irmão do Meio
O arquivo .editorconfig ajuda a manter a indentação correta mesmo em editores diferentes. * indent_style = space * indent_size = 2
🛡️ Linting no CI (GitHub Actions)
- A build só passa se o Linter der "OK".
- Ninguém consegue enviar código "sujo" para a branch principal.
🏆 Checklist de Qualidade Pro
- ESLint e Prettier configurados no projeto.
- "Format on Save" ativado no VS Code.
- Entende a diferença entre aviso e erro.
- Arquivos de configuração versionados no Git.
📝 Prática de Hoje
- Instalar o ESLint e Prettier via npm.
- Criar os arquivos de configuração.
- Bagunçar um código e deixar o editor consertar sozinho.
🏁 Dúvidas?
Código limpo é código profissional! 🚀✨