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.21 senza 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

ModificaBeneficioRischio
Estrarre line_totalTestabile da solaNessuno
Costante VAT_RATEAliquota modificabile in un puntoBasso
Eliminare il ramo duplicatoMeno codice da mantenereVerificare 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.

Prompt correlati