Vai al contenuto

Strumenti per sviluppatori

Correzione di bug

Incolla codice ed errore, ricevi la causa vera, una correzione minima con le righe cambiate segnate e un consiglio perché il bug non torni.

Accedi o crea un account gratuito, lo strumento si apre nel tuo spazio di lavoro.

Uno stack trace ti dice dove il programma si è fermato, non sempre perché. Correzione di bug legge insieme il codice e l'errore e ti spiega la causa con parole semplici, così sistemi il problema e non solo il sintomo.

Metti tutto in un unico campo, il codice, il messaggio di errore completo e cosa dovrebbe succedere. La risposta arriva in quattro parti, una diagnosi che ordina le cause possibili dalla più probabile, il codice corretto con ogni riga modificata segnata da un breve commento, il motivo per cui la correzione funziona e come evitare che il bug si ripresenti.

Lo strumento cambia solo quello che serve, quindi la differenza rispetto al tuo codice resta piccola e facile da rivedere. Fa parte della famiglia Strumenti per sviluppatori. Se prima di intervenire vuoi capire un codice che non conosci, parti da Spiegazione del codice.

Cosa ottieni

  • Una diagnosi della causa in linguaggio semplice, con le ipotesi ordinate per probabilità quando l'errore è ambiguo
  • Il codice corretto in un blocco con l'indicazione del linguaggio, le righe modificate segnate da un breve commento
  • Da due a quattro punti che spiegano perché la correzione funziona
  • Uno o due consigli di prevenzione, oppure un test che intercetterebbe il bug in futuro

Cosa compili

Codice ed errore obbligatorio

Indica linguaggio e versione, l'errore completo o lo stack trace e il risultato atteso. Prima di incollare togli password, chiavi API e dati personali.

Come si usa, passo dopo passo

  1. Apri Correzione di bug

    Lo trovi nella famiglia Strumenti per sviluppatori. Tutto va in un solo campo, Codice ed errore.

  2. Incolla codice, errore e risultato atteso

    Aggiungi linguaggio e versione, l'errore completo o lo stack trace e una riga su cosa dovrebbe succedere. Prima togli password, chiavi API e dati personali.

  3. Scegli la lingua di uscita e genera

    Le spiegazioni seguono la lingua che scegli, per esempio l'italiano, mentre codice, nomi delle variabili e messaggi di errore restano identici.

  4. Rivedi le modifiche prima del commit

    Confronta le righe segnate con il tuo originale, lancia i test e, se ha senso, aggiungi alla tua suite il test suggerito.

Esempio, input e risultato

Python, una lista che non si azzera fra una chiamata e l'altra

Input

issue_description
Python 3.12. Ogni chiamata dovrebbe restituire una lista con un solo elemento, invece la lista continua a crescere. def add_tag(tag, tags=[]): tags.append(tag) return tags print(add_tag("a")) print(add_tag("b")) # atteso ['b'], ottenuto ['a', 'b']

Risultato

## Diagnosi
Il valore predefinito `tags=[]` viene creato una sola volta, quando la funzione è definita, e non a ogni chiamata. Ogni chiamata che non passa `tags` aggiunge elementi alla stessa lista, quindi restano quelli delle chiamate precedenti.

## Correzione
```python
def add_tag(tag, tags=None):
if tags is None: # modificato, crea una lista nuova a ogni chiamata
tags = []
tags.append(tag)
return tags
```

## Perché funziona
- `None` è immutabile, quindi è sicuro come valore predefinito.
- La lista nuova nasce dentro la funzione a ogni chiamata senza `tags`.

## Prevenzione
- Non usare mai liste, dizionari o set come argomenti predefiniti.

Esempio illustrativo scritto dalla redazione per mostrare il formato atteso.

Consigli per risultati migliori

  • Incolla lo stack trace completo, non solo l'ultima riga. Le righe sopra l'errore spesso indicano la causa vera.
  • Scrivi cosa dovrebbe fare il codice. Un errore di logica che non genera eccezioni si trova solo se lo strumento conosce il risultato atteso.
  • Indica la versione del linguaggio e delle librerie principali, perché molti errori compaiono solo in una release precisa.
  • Riduci il codice al pezzo più piccolo che continua a fallire. Meno rumore c'è, più la diagnosi è mirata.

Chi lo usa, e per cosa

Sviluppatori bloccati su un errore criptico

Incolla la funzione che fallisce e lo stack trace e ricevi un elenco ordinato di cause, invece di scorrere forum un risultato alla volta.

Studenti che imparano a fare debug

La diagnosi e i punti sul perché la correzione funziona spiegano l'errore, così la lezione resta.

Chi fa code review

Incolla un frammento che si comporta in modo strano e usa le righe segnate come base per un commento di revisione.

Freelance che mantengono codice datato

Ottieni una prima diagnosi su vecchi script in un linguaggio che usi poco, poi verificala sulla documentazione.

Limiti e buone pratiche

  • Non esegue il codice. La correzione è ragionata su quello che incolli, quindi va provata prima del merge.
  • Vede solo il contenuto del campo, non il tuo repository, il database o le variabili d'ambiente.
  • Quando non è sicuro che una funzione esista nella tua versione lo dice, invece di tirare a indovinare. Quei punti vanno verificati nella documentazione ufficiale.
  • Ogni generazione usa i crediti del tuo piano, vedi i prezzi o crea un account.

Domande frequenti

L'AI può correggere i bug del mio codice?

Può individuare la causa probabile e proporre una versione corretta per la maggior parte degli errori che riesci a riprodurre in un frammento. Non esegue il codice, quindi lancia i test e controlla le righe modificate prima del merge.

Con quali linguaggi funziona Correzione di bug?

Non c'è un elenco chiuso. Scrivi linguaggio e versione nel campo e la correzione torna in un blocco di codice con quel linguaggio, che sia Python, JavaScript, PHP, Java, Go o SQL.

Cosa devo incollare per avere una buona diagnosi?

Il pezzo di codice più piccolo che continua a fallire, il messaggio di errore o lo stack trace completo, linguaggio e versione, e una frase sul risultato che ti aspettavi. Senza il risultato atteso un bug di logica che non genera errori è difficile da trovare.

Cosa succede se incollo per sbaglio una chiave API?

Lo strumento ha l'istruzione di non ripetere password, chiavi o dati personali, li sostituisce con segnaposto e ti ricorda di revocare la chiave esposta. L'abitudine più sicura resta togliere i segreti prima di incollare e ruotare una chiave appena è uscita dal tuo computer.

Riscrive tutta la mia funzione?

No. Cambia solo quello che serve per correggere il bug e segna ogni riga modificata con un breve commento, così le modifiche restano facili da rivedere. Se il codice ha bisogno di un refactoring più ampio, lo può segnalare nei consigli di prevenzione.

Provalo nel tuo spazio di lavoro

Inizia gratis, senza carta di credito. Quando ti serve di più, la suite cresce con te, dal Lite all'Agency.

Accedi o crea un account gratuito, lo strumento si apre nel tuo spazio di lavoro.