Pular para o conteudo principal

Como ler código legado

Como entender módulo antigo com controle de risco, sem confundir estranheza com motivo automático para reescrever.

Andrews Ribeiro

Andrews Ribeiro

Founder & Engineer

O problema

Código legado desperta uma vontade muito especifica:

“Isso aqui esta horrivel. Vou reescrever e pronto.”

O alivio mental e imediato.

O risco também.

Porque, na maior parte das vezes, o que parece bagunca pura tem:

  • regra de negócio escondida
  • compatibilidade com fluxo antigo
  • exceção historica
  • acoplamento com outros pontos do sistema

Se você reescreve cedo demais, perde contexto antes de ganhar entendimento.

Modelo mental

Pense assim:

código legado e comportamento em produção com história acumulada

Ele pode estar feio. Pode estar mal nomeado. Pode estar difícil de seguir.

Mas ainda assim ele representa decisões, restrições e cicatrizes do sistema.

Seu primeiro trabalho não e deixar bonito.

Seu primeiro trabalho e conseguir explicar o que ele faz sem inventar moda.

Quebrando o problema

Ache a entrada e a saída

Antes de ler o miolo inteiro, descubra:

  • quem chama esse módulo
  • que dado entra
  • que efeito sai

Isso cria uma moldura mínima.

Sem essa moldura, você só anda em circulos entre arquivo, helper e classe utilitaria.

Marque os pontos de decisão

Depois procure onde o comportamento realmente muda:

  • if
  • switch
  • flags
  • regras por tipo de cliente
  • chamadas externas

Nem toda linha importa igual.

Os pontos de decisão costumam carregar a regra de negócio ou a fragilidade real.

Monte um mapa pequeno, não um mapa perfeito

Você não precisa entender 100% do módulo para fazer progresso.

Precisa entender o suficiente para responder perguntas como:

  • qual fluxo normal
  • onde entram exceções
  • quais dependências alteram o resultado
  • onde uma mudança pode quebrar algo invisível

Mapa mínimo vale mais do que ambicao enciclopedica.

Refatore depois de conseguir descrever

Uma regra simples ajuda muito:

se você ainda não consegue explicar o módulo em linguagem simples, ainda não esta pronto para redesenhar ele com confiança

Primeiro entenda. Depois proteja com teste, observação ou recorte menor. Só entao mude a estrutura.

Exemplo simples

Imagine um módulo antigo de calculo de desconto.

A primeira leitura parece pessima:

  • nomes ruins
  • if encadeado
  • helper global
  • consulta externa no meio do fluxo

A reação apressada seria:

  • criar uma arquitetura nova de regras
  • extrair cinco classes
  • padronizar tudo antes de provar entendimento

Uma reação melhor seria:

  1. pegar um cenario real de pedido
  2. seguir a entrada até a saída
  3. anotar onde o valor muda
  4. identificar quais condições alteram a regra
  5. só depois pensar qual trecho merece isolamento

No fim, talvez você descubra que o problema real não e o módulo inteiro.

E só um bloco específico misturando regra promocional com chamada externa.

Erros comuns

  • Confundir desconforto de leitura com prova de que tudo precisa ser refeito.
  • Navegar pelo código sem pergunta concreta.
  • Refatorar antes de proteger comportamento importante.
  • Julgar o autor anterior antes de entender a restrição que existia.
  • Querer montar a abstração ideal antes de localizar a dor real.

Como um senior pensa

Quem tem mais experiência costuma entrar em legado com menos vaidade e mais controle.

O raciocínio e parecido com:

“Eu não quero um design bonito em cima de uma compreensao fraca. Primeiro eu quero um mapa confiavel do comportamento e dos riscos. Depois eu escolho a menor mudança que melhora alguma coisa sem explodir o resto.”

Essa postura parece menos glamourosa.

Mas costuma salvar semanas de retrabalho.

O que o entrevistador quer ver

Em entrevista, código legado mede muito bem nocao de risco.

O avaliador quer ver se você:

  • entende antes de reescrever
  • mapeia comportamento e dependências
  • pensa em mudança incremental
  • evita refatoração teatral

Uma resposta forte costuma soar assim:

“Quando pego código legado, primeiro tento entender a fronteira do módulo, os pontos de decisão e o comportamento que preciso preservar. Só depois penso em refatorar, de preferencia em passos pequenos que aumentem clareza sem perder controle do risco.”

Código legado não pede desprezo. Pede leitura disciplinada.

Reescrever cedo demais e uma forma cara de continuar sem entender.

Resumo rápido

O que vale manter na cabeça

Checklist de pratica

Use isto ao responder

Você concluiu este artigo

Próximo artigo Como melhorar um módulo Artigo anterior Como Identificar Acoplamento Ruim de Verdade

Continue explorando

Artigos relacionados