๐๏ธ Entender a Arquitetura
Antes de refatorar, o Claude precisa entender a arquitetura atual para nao quebrar dependencias ou alterar comportamentos.
๐ก Conceito Principal
Peca ao Claude para mapear o codigo antes de mudar qualquer coisa:
- โข
"Analise src/services/payment.js. Quais funcoes ele exporta e quem as importa?" - โข
"Mapeie todas as dependencias do modulo de autenticacao" - โขO Claude usa grep e leitura de arquivos para criar um mapa mental do codigo
โก Dica Pratica
Peca um diagnostico primeiro: "Antes de refatorar, identifique os code smells e problemas de arquitetura neste modulo"
๐ฏ Definir o Objetivo
Defina claramente o que voce quer melhorar e quais restricoes existem. Refatoracao sem objetivo claro vira reescrita desnecessaria.
๐ก Conceito Principal
Seja especifico no objetivo da refatoracao:
- โข
"Extraia a logica de validacao para um modulo separado mantendo a mesma API publica" - โข
"Converta os callbacks para async/await sem mudar o comportamento externo" - โขEspecifique restricoes: "Nao mude a interface publica" ou "Mantenha compatibilidade com v2"
โก Dica Pratica
Use Plan Mode: "[Plan Mode] Quero refatorar o PaymentService. Proponha um plano que melhore testabilidade sem mudar a API"
๐๏ธ Revisar o Diff
Apos o Claude fazer as mudancas, revise cada diff cuidadosamente. Em refatoracao, um detalhe errado pode causar bugs sutis.
๐ก Conceito Principal
O Claude mostra diffs antes de aplicar. Fique atento a:
- โขMudancas de comportamento nao intencionais (ex: ordem de execucao alterada)
- โขImports removidos que ainda sao necessarios em outros lugares
- โขPeca:
"Me mostre o git diff completo antes de eu aceitar"
โก Dica Pratica
Se o diff for grande, peca um resumo: "Resuma as mudancas que voce fez e quais arquivos foram afetados"
๐งช Rodar Testes
Testes sao a rede de seguranca da refatoracao. Rode todos os testes apos cada mudanca para garantir que nada quebrou.
๐ก Conceito Principal
Testes antes e depois da refatoracao:
- โข
"Rode todos os testes e me mostre quais passam e quais falham" - โขSe nao tem testes, peca:
"Escreva testes para o comportamento atual antes de refatorar" - โขApos refatorar:
"Rode os testes novamente. Os mesmos testes devem continuar passando"
โก Dica Pratica
Regra de ouro: "Sem testes = sem refatoracao. Primeiro escreva testes, depois refatore". Isso e valido tanto para humanos quanto para IA.
๐ฆ Commit Incremental
Faca commits incrementais durante a refatoracao para ter pontos de retorno seguros caso algo de errado.
๐ก Conceito Principal
Commits pequenos facilitam reverter se necessario:
- โข
/commitapos cada etapa da refatoracao - โขEx:
refactor: extract validation logic to separate module - โขSe algo quebrar, e facil fazer
git revertdo ultimo commit
โก Dica Pratica
Peca ao Claude: "Faca commit apos cada etapa da refatoracao com mensagens descritivas". Assim voce tem um historico limpo.
๐ Boas Praticas
Siga estas boas praticas de refatoracao para maximizar a qualidade e minimizar riscos.
๐ก Conceito Principal
Principios para refatoracao eficiente com Claude Code:
- โขNunca refatore e adicione features ao mesmo tempo - sao commits separados
- โขUse
"Refatore para melhorar X, mas mantenha o comportamento identico" - โขPeca code review apos refatorar:
/reviewpara validar as mudancas
โก Dica Pratica
Para refatoracoes grandes, use a estrategia "strangler fig": "Crie o novo modulo em paralelo, migre os callers um por um, e depois remova o antigo"
๐ Resumo do Modulo
Proximo Modulo:
3.4 - Entender um Codebase Novo