Un modello comune per individuare un bug segue questo script:
- Osserva la stranezza, ad esempio, nessun output o un programma sospeso.
- Individua il messaggio pertinente nell'output del registro o del programma, ad esempio "Impossibile trovare Foo". (Quanto segue è rilevante solo se questo è il percorso intrapreso per localizzare il bug.Se una traccia dello stack o altre informazioni di debug sono prontamente disponibili questa è un'altra storia.)
- Trova il codice in cui viene stampato il messaggio.
- Esegui il debug del codice tra il primo posto che Foo immette (o dovrebbe inserire) l'immagine e dove viene stampato il messaggio.
Questo terzo passo è dove il processo di debug spesso si arresta perché ci sono molti posti nel codice in cui "Impossibile trovare Foo" (o una stringa di template Could not find {name}
) viene stampato. Infatti, più volte un errore di ortografia mi ha aiutato a trovare la posizione effettiva molto più rapidamente di quanto avrei fatto altrimenti - ha reso il messaggio unico nell'intero sistema e spesso in tutto il mondo, determinando un notevole successo nei motori di ricerca immediatamente.
L'ovvia conclusione di questo è che dovremmo usare gli ID di messaggi globalmente univoci nel codice, codificarli come parte della stringa del messaggio e possibilmente verificare che ci sia una sola occorrenza di ciascun ID nella base di codice. In termini di manutenibilità, cosa pensa questa community sono i pro e gli svantaggi più importanti di questo approccio, e come implementeresti questo o altrimenti assicurarti che l'implementazione non sia mai necessaria (supponendo che il software abbia sempre bug)?