18 de Janeiro de 2025
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
Founder & Engineer
4 min Intermediario Sistemas
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:
ifswitch- 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
ifencadeado- 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:
- pegar um cenario real de pedido
- seguir a entrada até a saída
- anotar onde o valor muda
- identificar quais condições alteram a regra
- 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
- Código legado deve ser entendido como comportamento em produção com história acumulada, não só como estilo feio.
- Antes de refatorar, vale mapear entradas, saídas, dependências e pontos de decisão.
- Estranho não e o mesmo que errado. Reescrita sem entendimento só troca risco conhecido por risco novo.
- Quem le legado bem tenta explicar o módulo com palavras simples antes de tentar embelezar a estrutura.
Checklist de pratica
Use isto ao responder
- Consigo entrar em um módulo antigo procurando comportamento, e não beleza estrutural?
- Sei mapear entradas, saídas e dependências antes de propor refatoração?
- Consigo diferenciar código confuso de regra de negócio complexa?
- Sei explicar em entrevista por que reescrever cedo demais pode piorar o risco?
Você concluiu este artigo
Compartilhar esta página
Copie o link manualmente no campo abaixo.