MODULO 3.3

๐Ÿ‘พ Refatorar Codigo

Workflow seguro para refatorar codigo existente sem quebrar funcionalidades, usando o Claude como parceiro de refatoracao.

6
Topicos
20
Minutos
Inter.
Nivel
Pratico
Tipo
1

๐Ÿ—๏ธ 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"

2

๐ŸŽฏ 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"

3

๐Ÿ‘๏ธ 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"

4

๐Ÿงช 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.

5

๐Ÿ“ฆ 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:

  • โ€ข/commit apos cada etapa da refatoracao
  • โ€ขEx: refactor: extract validation logic to separate module
  • โ€ขSe algo quebrar, e facil fazer git revert do ultimo commit

โšก Dica Pratica

Peca ao Claude: "Faca commit apos cada etapa da refatoracao com mensagens descritivas". Assim voce tem um historico limpo.

6

๐Ÿ“š 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: /review para 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

โœ“
Arquitetura - Mapeie dependencias antes de mexer
โœ“
Objetivo - Defina exatamente o que quer melhorar
โœ“
Diff - Revise cada mudanca com cuidado
โœ“
Testes - Rode antes e depois de cada etapa
โœ“
Commits - Incremental para facilitar rollback
โœ“
Boas Praticas - Separe refatoracao de features

Proximo Modulo:

3.4 - Entender um Codebase Novo