Receber um sistema com 10 anos de história e a missão de modernizá-lo sem parar a operação é um dos desafios mais delicados do desenvolvimento.
Regra #1: Entenda Antes de Tocar
Antes de refatorar uma linha, passo pelo menos uma semana apenas lendo e mapeando. Identifico pontos de entrada, dependências e efeitos colaterais escondidos.
Técnica: Strangler Fig Pattern
O Strangler Fig é minha abordagem favorita: criar o código novo ao lado do antigo, redirecionar o tráfego gradualmente, e eventualmente remover o legado quando o novo está estável.
// Legado
function getUser($id) {
return mysql_query("SELECT * FROM user WHERE id=$id");
}
// Novo — coexiste durante a transição
class UserRepository {
public function findById(int $id): ?User {
return $this->db->query('SELECT * FROM users WHERE id = ?', [$id]);
}
}
A chave é nunca fazer uma "grande reescrita". Pequenos passos verificáveis são o único caminho seguro.
Boa estratégia, nunca pensei dessa forma!