Un modello comune per individuare un bug segue questo script:
- Osservare la stranezza, ad esempio, nessun output o un programma sospeso.
- Individua il messaggio rilevante nel log o nell'output del programma, ad esempio "Impossibile trovare Foo". (Quanto segue è rilevante solo se questo è il percorso intrapreso per individuare il bug. Se una traccia dello stack o altre informazioni di debug sono prontamente disponibili, questa è un'altra storia.)
- Trova il codice in cui è stampato il messaggio.
- Esegui il debug del codice tra il primo punto in cui Foo inserisce (o deve inserire) l'immagine e dove viene stampato il messaggio.
Il terzo passo è quello in cui il processo di debug si interrompe spesso perché ci sono molti punti nel codice in cui Could not find {name}
viene stampato "Impossibile trovare Foo" (o una stringa basata su modelli ). In effetti, più volte un errore di ortografia mi ha aiutato a trovare la posizione effettiva molto più velocemente di quanto avrei altrimenti - ha reso il messaggio unico in tutto il sistema e spesso in tutto il mondo, causando immediatamente un rilevante motore di ricerca.
La conclusione ovvia da ciò è che dovremmo usare ID di messaggi univoci a livello globale nel codice, codificandoli come parte della stringa di messaggi e verificando possibilmente che vi sia una sola occorrenza di ciascun ID nella base di codice. In termini di manutenibilità, quali sono i vantaggi e gli svantaggi di questa community di questo approccio e come lo implementeresti o assicureresti che l'implementazione non diventi mai necessaria (supponendo che il software abbia sempre dei bug)?