Rifattorizza il codice mantenendone il comportamento
Migliora la leggibilità e la manutenibilità di un frammento di codice senza cambiarne il funzionamento, con la spiegazione di ogni modifica. Pensato per ChatGPT, Claude e Microsoft Copilot. Include 4 variabili personalizzabili e puoi copiarlo gratuitamente con un clic.
Intermedio · Codice · In attesa di revisione editoriale
Prompt
Sei un esperto di clean code e di refactoring sicuro in {{language}}.
Rifattorizza il codice seguente con questi obiettivi, in ordine di priorità: {{goals}}.
```
{{code}}
```
Regole:
- Il comportamento osservabile deve restare identico (stessi input → stessi output ed effetti collaterali).
- Non aggiungere nuove dipendenze.
- Rispetta lo stile del progetto: {{style}}.
- Se l'intento di una parte non è chiaro o il codice sembra contenere un bug, segnalalo invece di cambiarlo in silenzio.
Formato della risposta:
1. Problemi rilevati (elenco breve, con il motivo).
2. Codice rifattorizzato completo.
3. Una tabella «modifica → vantaggio → rischio».
4. Unit test minimi che dimostrino che il comportamento non è cambiato.Come usarlo
Rifattorizza frammenti circoscritti (una funzione o un piccolo modulo). Esegui i test prima e dopo aver applicato le modifiche.
Esempio d'uso
Obiettivi: ridurre l'annidamento, nomi più chiari e separare la logica di validazione.
Esempio di risultato
Supponendo una tipica funzione che calcola i totali degli ordini con blocchi ripetuti:
1. Problemi rilevati
- Nomi opachi (
d,t,x): bisogna leggere tutto per capire cosa rappresentano. - Logica duplicata: il calcolo dell'IVA è ripetuto in due rami.
- Numero magico
0.21senza spiegazione.
2. Codice rifattorizzato
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
Un'unica espressione calcola il subtotale e l'IVA viene applicata in un solo punto.
3. Modifica → beneficio → rischio
| Modifica | Beneficio | Rischio |
|---|---|---|
Estrarre line_total | Testabile da sola | Nessuno |
Costante VAT_RATE | Aliquota modificabile in un punto | Basso |
| Eliminare il ramo duplicato | Meno codice da mantenere | Verificare l'arrotondamento |
4. Test minimo
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")Dati chiave
- Categoria
- Programmazione e sviluppo · Refactoring
- Tipo di output
- Codice
- Livello
- Intermedio
- Pensato per
- ChatGPT, Claude e Microsoft Copilot
- Verificato in
- In attesa di verifica editoriale
- Variabili
- Linguaggio, Obiettivi, Codice e Stile / convenzioni
- Lingua
- Italiano
- Prezzo
- Gratuito, senza registrazione
- Aggiornato
- 07/11/2026
Domande frequenti
Come faccio a sapere che il refactoring non ha rotto nulla?
Esegui i test esistenti e quelli generati su entrambe le versioni. Se il codice non ha test, aggiungili e fai un commit prima di applicare il refactoring.
Posso incollare un file intero?
Sì, ma i risultati sono più affidabili con un modulo o poche funzioni alla volta. Con file molto lunghi l'IA tende a saltare o riassumere parti del codice.
A cosa serve questo prompt?
Migliora la leggibilità e la manutenibilità di un frammento di codice senza cambiarne il funzionamento, con la spiegazione di ogni modifica.
Con quali strumenti di IA funziona?
È pensato per ChatGPT, Claude e Microsoft Copilot. Non lo abbiamo ancora verificato in questi strumenti, quindi i risultati possono variare da uno all'altro.
Come personalizzo il prompt?
Clicca su «Personalizza» e compila le variabili (Linguaggio, Obiettivi, Codice e Stile / convenzioni). Il testo si aggiorna all'istante e poi puoi copiarlo con un clic. I valori vengono salvati solo nel tuo browser.
Serve esperienza per usarlo?
È di livello intermedio: conviene conoscere l'argomento per fornire un buon contesto e valutare il risultato con occhio critico.
Questo prompt è gratuito?
Sì. Tutti i prompt di HomeCasa Prompts sono gratuiti, senza registrazione né abbonamento. Puoi usarli anche in progetti professionali.
Posso fidarmi dell'output dell'IA?
Consideralo una bozza di alta qualità: verifica sempre dati, cifre e affermazioni importanti prima di pubblicare o prendere decisioni.