Files
everything-claude-code/docs/pt-BR/commands/refactor-clean.md
2026-03-21 14:06:49 +01:00

2.9 KiB

Refactor Clean

Identifique e remova código morto com segurança, com verificação de testes em cada passo.

Passo 1: Detectar Código Morto

Rode ferramentas de análise com base no tipo do projeto:

Tool What It Finds Command
knip Unused exports, files, dependencies npx knip
depcheck Unused npm dependencies npx depcheck
ts-prune Unused TypeScript exports npx ts-prune
vulture Unused Python code vulture src/
deadcode Unused Go code deadcode ./...
cargo-udeps Unused Rust dependencies cargo +nightly udeps

Se nenhuma ferramenta estiver disponível, use Grep para encontrar exports com zero imports:

# Find exports, then check if they're imported anywhere

Passo 2: Categorizar Achados

Classifique os achados em níveis de segurança:

Tier Examples Action
SAFE Unused utilities, test helpers, internal functions Delete with confidence
CAUTION Components, API routes, middleware Verify no dynamic imports or external consumers
DANGER Config files, entry points, type definitions Investigate before touching

Passo 3: Loop de Remoção Segura

Para cada item SAFE:

  1. Rode a suíte completa de testes — Estabeleça baseline (tudo verde)
  2. Delete o código morto — Use a ferramenta Edit para remoção cirúrgica
  3. Rode a suíte de testes novamente — Verifique se nada quebrou
  4. Se testes falharem — Reverta imediatamente com git checkout -- <file> e pule este item
  5. Se testes passarem — Vá para o próximo item

Passo 4: Tratar Itens CAUTION

Antes de deletar itens CAUTION:

  • Procure imports dinâmicos: import(), require(), __import__
  • Procure referências em string: nomes de rota, nomes de componente em configs
  • Verifique se é exportado por API pública de pacote
  • Verifique ausência de consumidores externos (dependents, se publicado)

Passo 5: Consolidar Duplicatas

Depois de remover código morto, procure:

  • Funções quase duplicadas (>80% similares) — mesclar em uma
  • Definições de tipo redundantes — consolidar
  • Funções wrapper sem valor — inline
  • Re-exports sem propósito — remover indireção

Passo 6: Resumo

Reporte resultados:

Dead Code Cleanup
──────────────────────────────
Deleted:   12 unused functions
           3 unused files
           5 unused dependencies
Skipped:   2 items (tests failed)
Saved:     ~450 lines removed
──────────────────────────────
All tests passing ✅

Regras

  • Nunca delete sem rodar testes antes
  • Uma remoção por vez — Mudanças atômicas facilitam rollback
  • Se houver dúvida, pule — Melhor manter código morto do que quebrar produção
  • Não refatore durante limpeza — Separe responsabilidades (limpar primeiro, refatorar depois)