← Glossário
Desenvolvimento

O que é Refactoring?

Refactoring (em português, refatoração) é o processo de simplificar o código mantendo o seu comportamento.

Definição e origem da palavra

A estrutura interna é renovada sem alterar a aparência externa. A legibilidade do código aumenta, facilitando a adição de novas funcionalidades. É um processo de limpeza que quita a dívida técnica. Martin Fowler é o nome de referência nesta disciplina.

Analogia: É semelhante a tornar as frases mais fluidas sem alterar o assunto do livro.

Como conhecer e usar no dia a dia?

Revisão: Rodadas de revisão de código.
Pagamento de dívida: Limpeza intercalada dentro da sprint.
Assumir o controle: Simplificação antes de entrar no código antigo.

Profundidade Técnica e Arquitetura

Movimentos comuns:

Extração de função: Dividir um bloco longo em uma parte nomeada.
Renomeação: Nome que expressa a intenção.
Código morto: Excluir o que não é utilizado.

Exemplo:

# önce
def f(a):
    return a*a*3.14
# sonra
def daire_alani(yaricap):
    return yaricap * yaricap * 3.14

Regra: Primeiro escreve-se o teste, depois mexe-se no código. Se não houver teste, a primeira tarefa é o teste.

Coisas frequentemente misturadas

Pensa-se que é uma funcionalidade ou correção de erro. No entanto, o resultado não muda, apenas a estrutura interna melhora. O comportamento é o mesmo, o código é diferente.

Use em diferentes disciplinas

Encanamento: Renovar a tubulação enquanto a parede permanece.
Redação: O assunto é o mesmo, a frase é fluida.
Poda: A árvore é a mesma, o arranjo dos galhos é ordenado.

Perguntas e respostas

Por que fazemos isso?

Código limpo evita erros e lentidão, acelerando o novo trabalho.

Quando é feito?

No código que está sendo tocado, em pequenas partes. Uma grande limpeza é planejada separadamente.

Qual é o risco?

Tocar no código sem testes altera o comportamento. Não se deve intervir sem a garantia de testes.

Com que frequência é feito?

Continuamente, em pequenas doses. É intercalado dentro da sprint, não é adiado.

Termos relacionados

Ferramentas relacionadas

Esta explicação foi escrita em linguagem simples para a TreScout com IA e traduzida automaticamente do original em turco · a versão turca é a que vale. Se algo parecer errado ou faltando, escreva para hello@trescout.com. Ler em turco →