Refatorizar código mantendo o comportamento
Melhore a legibilidade e a manutenção de um excerto de código sem alterar o que ele faz, com explicação de cada alteração. Pensado para ChatGPT, Claude e Microsoft Copilot. Inclui 4 variáveis personalizáveis e pode copiá-lo gratuitamente com um clique.
Intermédio · Código · Pendente de revisão editorial
Prompt
És um especialista em código limpo e refatorização segura em {{language}}.
Refatoriza o seguinte código com estes objetivos, por ordem de prioridade: {{goals}}.
```
{{code}}
```
Regras:
- O comportamento observável tem de ser idêntico (mesmas entradas → mesmas saídas e efeitos secundários).
- Não acrescentes novas dependências.
- Respeita o estilo do projeto: {{style}}.
- Se a intenção de alguma parte não for clara ou o código parecer ter um bug, assinala-o em vez de o alterar em silêncio.
Formato da resposta:
1. Problemas detetados (lista curta, com o motivo).
2. Código refatorizado completo.
3. Uma tabela «alteração → benefício → risco».
4. Testes unitários mínimos que comprovem que o comportamento não mudou.Como utilizar
Refatorize excertos delimitados (uma função ou um módulo pequeno). Execute os seus testes antes e depois de aplicar as alterações.
Exemplo de utilização
Objetivos: reduzir o aninhamento, nomes mais claros e separar a lógica de validação.
Exemplo de resultado
Partindo de uma função típica que calcula totais de encomendas com blocos repetidos:
1. Problemas detetados
- Nomes opacos (
d,t,x): obrigam a ler tudo para perceber o que representam. - Lógica duplicada: o cálculo do IVA repete-se em dois ramos.
- Número mágico
0.21sem explicação.
2. Código refatorizado
from decimal import Decimal
VAT_RATE = Decimal("0.21")
def line_total(price: Decimal, quantity: int) -> Decimal:
return price * quantity
def order_total(lines: list[tuple[Decimal, int]], apply_vat: bool = True) -> Decimal:
subtotal = sum((line_total(p, q) for p, q in lines), Decimal("0"))
return subtotal * (1 + VAT_RATE) if apply_vat else subtotal
Uma única expressão calcula o subtotal e o IVA é aplicado num só ponto.
3. Alteração → benefício → risco
| Alteração | Benefício | Risco |
|---|---|---|
Extrair line_total | Testável isoladamente | Nenhum |
Constante VAT_RATE | Taxa alterada num só sítio | Baixo |
| Eliminar o ramo duplicado | Menos código para manter | Verificar arredondamento |
4. Teste mínimo
def test_order_total_keeps_behavior():
lines = [(Decimal("10"), 2), (Decimal("5"), 1)]
assert order_total(lines) == Decimal("30.25")
assert order_total(lines, apply_vat=False) == Decimal("25")Dados-chave
- Categoria
- Programação e desenvolvimento · Refatorização
- Tipo de resultado
- Código
- Nível
- Intermédio
- Pensado para
- ChatGPT, Claude e Microsoft Copilot
- Verificado em
- Pendente de verificação editorial
- Variáveis
- Linguagem, Objetivos, Código e Estilo / convenções
- Idioma
- Português
- Preço
- Gratuito, sem registo
- Atualizado
- 07/11/2026
Perguntas frequentes
Como sei que a refatorização não estragou nada?
Execute os testes que já tem e os que o prompt gera nas duas versões. Se o código não tiver testes, acrescente-os e faça commit antes de aplicar a refatorização.
Posso colar um ficheiro inteiro?
Sim, mas os resultados são mais fiáveis com um módulo ou poucas funções de cada vez. Com ficheiros muito longos, a IA tende a saltar ou resumir partes do código.
Para que serve este prompt?
Melhore a legibilidade e a manutenção de um excerto de código sem alterar o que ele faz, com explicação de cada alteração.
Com que ferramentas de IA funciona?
Foi pensado para ChatGPT, Claude e Microsoft Copilot. Ainda não o verificámos nestas ferramentas, pelo que os resultados podem variar entre elas.
Como personalizo o prompt?
Clique em “Personalizar” e preencha as variáveis (Linguagem, Objetivos, Código e Estilo / convenções). O texto atualiza-se instantaneamente e pode depois copiá-lo com um clique. Os valores ficam guardados apenas no seu navegador.
Preciso de experiência para o utilizar?
É de nível intermédio: convém conhecer o tema para fornecer bom contexto e rever o resultado com sentido crítico.
Este prompt é gratuito?
Sim. Todos os prompts do HomeCasa Prompts são gratuitos, sem registo nem subscrição. Pode também utilizá-los em projetos profissionais.
Posso confiar no resultado da IA?
Trate-o como um rascunho de qualidade: verifique sempre os dados, os números e as afirmações importantes antes de publicar ou tomar decisões.