MODULO 3.3

Workflow: Refatorar Codigo

Melhore a estrutura do codigo sem alterar o comportamento. Commits pequenos, testes verdes em cada passo, e padroes seguros de refatoracao com Claude Code.

6
Topicos
30
Minutos
Pratico
Nivel
Workflow
Tipo
1

Entendendo a Arquitetura Atual

Antes de refatorar uma unica linha, voce precisa entender profundamente o codigo que vai mudar. Refatorar sem compreender e receita para bugs. O Claude Code le o codebase e explica a arquitetura atual antes de qualquer mudanca.

🎯 Conceito Principal

O principio "read before change" e a fundacao de toda refatoracao segura:

  • β€’Mapeie dependencias: Quais arquivos importam o modulo que voce quer refatorar? Quem depende dele? Mudancas em interfaces afetam todos os consumidores
  • β€’Identifique padroes: O codigo segue algum padrao especifico? Ha convencoes de naming, estrutura ou organizacao que precisam ser mantidas?
  • β€’Verifique testes existentes: Ha testes que cobrem o codigo atual? Se nao, crie-os antes de refatorar β€” eles sao sua rede de seguranca

πŸ’‘ Dica Pratica

Peca ao Claude para mapear a arquitetura antes de qualquer mudanca:

> Leia o modulo [X] e explique a arquitetura atual. Quais sao as dependencias? Quem consome este modulo? Ha testes existentes?
2

Definindo o Objetivo da Refatoracao

Refatoracao sem objetivo claro vira refatoracao infinita. Defina exatamente o que voce quer melhorar: performance? legibilidade? testabilidade? desacoplamento? Sem um alvo claro, voce pode acabar mudando tudo sem melhorar nada.

🎯 Conceito Principal

Um objetivo claro de refatoracao tem tres caracteristicas:

  • β€’Especifico: "Extrair a logica de validacao para um modulo separado" em vez de "melhorar o codigo"
  • β€’Mensuravel: Voce consegue verificar se o objetivo foi alcancado? Menos dependencias? Menos linhas? Mais testes passando?
  • β€’Preservador de comportamento: O comportamento externo deve ser identico. Refatoracao muda a estrutura, nao a funcionalidade

πŸ’‘ Dica Pratica

Comunique o objetivo de forma explicita:

> Refatore [modulo X] para [objetivo]. Nao mude nenhum comportamento externo. Mantenha a mesma API publica.
3

Refatorando em Commits Pequenos

A regra de ouro da refatoracao: commits pequenos e incrementais. Cada commit deve ser uma mudanca atomica que compila, passa nos testes e pode ser revertida independentemente. Nunca faca uma refatoracao gigante em um unico commit.

🎯 Conceito Principal

Small incremental changes sao a abordagem mais segura:

  • β€’Um passo por vez: Renomeie uma variavel, extraia uma funcao, mova um arquivo β€” cada mudanca e um commit separado
  • β€’Revertivel: Se algo quebrar, voce pode reverter o ultimo commit sem perder todo o progresso
  • β€’Revisavel: Commits pequenos sao mais faceis de revisar. Um diff de 20 linhas e facil de entender; um de 2000 linhas ninguem le

πŸ’‘ Dica Pratica

Peca ao Claude para dividir a refatoracao em passos atomicos:

> Divida esta refatoracao em passos pequenos e independentes. Faca um passo de cada vez e commite apos cada um.
4

Mantendo Testes Verdes

A cada passo da refatoracao, todos os testes devem continuar passando. Se um teste quebra, ou o teste esta errado (e precisa ser atualizado) ou a refatoracao introduziu uma mudanca de comportamento (e precisa ser corrigida).

🎯 Conceito Principal

Testes verdes apos cada mudanca e inegociavel em refatoracao:

  • β€’Rode apos cada passo: Nao acumule mudancas sem testar. Rode a suite completa apos cada commit atomico
  • β€’Testes que quebram = sinal: Um teste quebrando durante refatoracao indica que voce mudou comportamento. Investigue antes de atualizar o teste
  • β€’Crie testes antes: Se o codigo nao tem cobertura adequada, adicione testes antes de refatorar. Eles sao sua garantia

πŸ’‘ Dica Pratica

Automatize a verificacao apos cada passo:

> Apos cada mudanca, rode todos os testes e confirme que passam antes de seguir para o proximo passo.
5

Revisando o Diff Completo

Apos completar todos os passos da refatoracao, faca uma revisao final do diff completo. Olhe para todas as mudancas juntas e verifique se o resultado final e coerente, legivel e melhora genuinamente o codigo.

🎯 Conceito Principal

A revisao final verifica o resultado holΓ­stico:

  • β€’Visao macro: Cada commit individual faz sentido, mas o conjunto todo melhora o codigo? O resultado final e mais limpo?
  • β€’Consistencia: As convencoes de naming sao consistentes em todo o diff? Ha mistura de estilos?
  • β€’Simplicidade: O codigo refatorado e genuinamente mais simples ou apenas diferente? Complexidade desnecessaria foi removida?

πŸ’‘ Dica Pratica

Peca ao Claude para fazer uma revisao critica do resultado:

> Revise o diff completo da refatoracao. O resultado e genuinamente melhor? Ha inconsistencias? Algo ficou mais complicado do que antes?
6

Patterns de Refatoracao Seguros

Existem padroes de refatoracao que sao inerentemente seguros e outros que sao arriscados. Conhecer a diferenca ajuda a escolher as mudancas certas e na ordem certa.

🎯 Conceito Principal

Padroes seguros vs padroes arriscados:

  • β€’Seguros: Rename (variavel, funcao, arquivo), Extract Function, Extract Module, Move File, Inline Variable, Remove Dead Code
  • β€’Moderados: Change Signature, Extract Interface, Replace Conditional with Polymorphism
  • β€’Arriscados: Rewrite from scratch, Change data structures, Merge modules com logicas diferentes

πŸ’‘ Dica Pratica

Comece sempre pelos padroes seguros e avance gradualmente:

> Comece com renames e extractions (padroes seguros). So avance para mudancas de estrutura apos os padroes basicos estarem aplicados.
πŸ‹οΈ

Exercicio Pratico

Refatorar modulo mantendo testes verdes

Escolha um modulo de um projeto seu que precise de melhoria estrutural e aplique o workflow completo de refatoracao.

1

Mapeie a arquitetura com o Claude

Peca leitura e explicacao do modulo antes de mudar qualquer coisa.

2

Defina objetivo claro e refatore em commits pequenos

Um passo atomico por commit, testes rodando apos cada um.

3

Revise o diff final e confirme a melhoria

Verifique que o resultado e genuinamente melhor que o original.

βœ… Criterios de Sucesso

☐Arquitetura mapeada antes de refatorar
☐Commits pequenos e atomicos
☐Testes verdes apos cada passo
☐Resultado final revisado e aprovado

πŸ“‹ Resumo do Modulo

βœ“
Read before change - Entenda a arquitetura atual antes de tocar no codigo.
βœ“
Objetivo claro - Especifico, mensuravel, preservador de comportamento.
βœ“
Commits pequenos - Uma mudanca atomica por commit. Revertivel e revisavel.
βœ“
Testes verdes sempre - Rode a suite completa apos cada passo.
βœ“
Revisao final do diff - Verifique que o resultado e genuinamente melhor.
βœ“
Padroes seguros primeiro - Rename, Extract, Move antes de mudancas estruturais arriscadas.

Proximo Modulo:

3.4 - Workflow: Entender Codebase Novo