PROJETO 3.2

๐Ÿงน Refatoracao de codigo legado

Codigo antigo, sem testes, com regras de negocio entrelacadas. Estrategia de modernizacao incremental usando Opus para diagnostico e DeepSeek para volume.

6
Etapas
~3h
Tempo
$1.20
Custo
Caso
Tipo
1

๐Ÿ”ฌ Diagnostico: o que esta quebrado

Manda 5 arquivos centrais para Opus (1M de contexto ajuda). Pede: lista de problemas em ordem de impacto.

Diagnostico do Opus

  • CRITICO: services/payment.ts mistura calculo, validacao, persistencia e log na mesma funcao (250 linhas).
  • ALTO: services/user.ts faz query por ID em loop (N+1) โ€” degrada com >100 users.
  • MEDIO: 0 testes em business logic. Cada deploy e roleta russa.
  • MEDIO: Nomes inconsistentes: getUserById, fetchUser, retrieveCustomer (mesma coisa).
  • BAIXO: Comentarios em portugues misturados com ingles, alguns enganosos.
2

๐Ÿ“ GPT-5.5 desenha o estado-alvo

Com diagnostico em maos, GPT-5.5 propoe arquitetura-alvo: novos modulos, interfaces, ordem das migracoes.

Plano em fases

  1. Fase 1: gerar testes de caracterizacao do comportamento atual (DeepSeek)
  2. Fase 2: extrair calculo de pagamento para domain/PaymentCalculator (puro, testavel)
  3. Fase 3: extrair persistencia para infrastructure/PaymentRepository
  4. Fase 4: usar JOIN em vez de loop em UserService.list() (resolve N+1)
  5. Fase 5: renomear funcoes para padrao consistente (getUserById em todos)
3

๐Ÿงช DeepSeek gera testes de caracterizacao

Antes de refatorar, DeepSeek le o codigo atual e gera testes que capturam o comportamento existente. Garante que refatoracao nao quebra nada.

Output: 47 testes em 1h

  • payment.test.ts (18 cases โ€” felizes, infelizes, edge)
  • user.test.ts (12 cases)
  • cart.test.ts (8 cases)
  • checkout.test.ts (9 cases)

Cobertura: 78% das linhas em business logic. Todos verdes contra codigo atual.

4

๐Ÿงฑ Refatoracao incremental com DeepSeek

DeepSeek refatora um modulo por commit, sempre rodando os testes. Se quebra: rollback e ajuste.

Sequencia de commits

  • refactor: extrair PaymentCalculator (testes verdes)
  • refactor: extrair PaymentRepository (testes verdes)
  • fix: rollback โ€” UserService quebrou em race
  • refactor: UserService.list com JOIN (testes verdes apos ajuste)
  • refactor: padronizar getUserById em 12 arquivos
  • chore: remover comentarios obsoletos

1 rollback no caminho. Sistema de testes funcionou โ€” bug nao chegou em prod.

5

๐Ÿ” GPT-5.5 audita cada modulo

Pega diff antes/depois, plano original, e GPT-5.5 confirma: "manteve a regra X?", "ainda trata edge case Y?".

Output da auditoria

  • โœ“ PaymentCalculator: regra de cashback preservada (10% sobre valor, com piso de R$5)
  • โœ“ PaymentRepository: idempotencia mantida (mesmo idempotency_key nao duplica)
  • โš ๏ธ UserService.list: queries antigas filtravam soft-deleted โ€” JOIN novo nao filtrava. Adicionar WHERE deleted_at IS NULL.
  • โœ“ Demais modulos: testes verdes + sem regressao detectavel
6

๐Ÿ’ฐ Resultado: 8h estimadas viram 3h

Geracao automatica de testes e o que mais corta tempo. DeepSeek brilha em volume.

Numeros

  • โ€ข 5 modulos refatorados, 12 commits
  • โ€ข 47 testes gerados (cobertura 78%)
  • โ€ข 1 rollback, recuperado em 5 min
  • โ€ข 1 bug detectado pela revisao (soft-delete nao filtrado)
  • โ€ข Custo: $1.20 ($0.20 Opus diagnostico + $0.20 GPT-5.5 plano + $0.65 DeepSeek + $0.15 GPT-5.5 review)
  • โ€ข Tempo total: 3h (estimativa inicial: 8h em ritmo manual)

Melhor parte: cobertura de testes que nao existia antes virou patrimonio do projeto. Vale 3h pelos proximos 2 anos.

๐Ÿ“Œ Resumo do Projeto

โœ“
Diagnostico com Opus: 1M de contexto le repo inteiro, prioriza problemas
โœ“
Plano em fases: testes primeiro, refator depois โ€” strangler pattern
โœ“
Testes de caracterizacao: cinto de seguranca antes de mexer
โœ“
Refator incremental: 1 modulo por commit, rollback rapido
โœ“
Auditoria semantica: testes verdes mas semantica pode mudar โ€” revisor pega
โœ“
Cobertura virou patrimonio: testes ficam no projeto pelos proximos anos

Proximo Projeto:

3.3 โ€” ๐Ÿ“ฑ App full-stack do zero