Ein allgemeines Muster zum Auffinden eines Fehlers folgt diesem Skript:
- Beachten Sie Verrücktheit, zum Beispiel keine Ausgabe oder ein hängendes Programm.
- Suchen Sie die relevante Meldung in der Protokoll- oder Programmausgabe, z. B. "Foo konnte nicht gefunden werden". (Das Folgende ist nur relevant, wenn dies der Pfad ist, auf dem der Fehler gefunden wurde. Wenn ein Stack-Trace oder andere Debugging-Informationen verfügbar sind, ist das eine andere Geschichte.)
- Suchen Sie den Code, in dem die Nachricht gedruckt wird.
- Debuggen Sie den Code zwischen der ersten Stelle, an der Foo das Bild eingibt (oder eingeben sollte), und der Stelle, an der die Nachricht gedruckt wird.
In diesem dritten Schritt kommt der Debugging-Prozess häufig zum Erliegen, da der Code an vielen Stellen "Foo nicht gefunden" (oder eine Zeichenfolge mit Vorlagen Could not find {name}
) enthält. Tatsächlich hat mir ein Rechtschreibfehler mehrmals geholfen, den tatsächlichen Standort viel schneller zu finden, als ich es sonst getan hätte. Dadurch wurde die Nachricht systemweit und häufig weltweit eindeutig, was zu einem sofortigen Treffer in einer relevanten Suchmaschine führte.
Die offensichtliche Schlussfolgerung daraus ist, dass wir global eindeutige Nachrichten-IDs im Code verwenden, diese als Teil der Nachrichtenzeichenfolge fest codieren und möglicherweise überprüfen sollten, dass nur ein Vorkommen jeder ID in der Codebasis vorhanden ist. Was hält diese Community im Hinblick auf die Wartbarkeit für die wichtigsten Vor- und Nachteile dieses Ansatzes und wie würden Sie dies implementieren oder auf andere Weise sicherstellen, dass die Implementierung niemals erforderlich wird (vorausgesetzt, die Software weist immer Fehler auf)?