Wann beginnen Sie mit dem Schreiben Ihres Ausnahmebehandlungscodes? Wann beginnen Sie mit dem Schreiben von Protokollanweisungen?
Um diese Frage zu erörtern, nehmen wir an, dass wir uns auf einer .NET-Plattform mit log4net-Protokollierung befinden, die wir jedoch generisch beantworten können.
Lösung: Ein Windows Forms-Projekt. Projekte: Benutzeroberfläche, Geschäftsregeln, DataHandler
Schreiben Sie also zunächst Ihre DataHandler, die Ihre Datenmanipulationen wie Erstellen, Lesen, Aktualisieren und Löschen ausführen.
Folgen Sie dann Ihren Geschäftsregeln
Und dann Ihre Benutzeroberfläche oder eine andere Permutation der oben genannten.
Testen Sie Ihre Anwendung auf Funktionalität.
Und dann schreiben Sie Ihren Ausnahmebehandlungscode und schließlich Ihren Protokollierungscode?
Wann ist der richtige Zeitpunkt, um mit dem Schreiben Ihres Ausnahmebehandlungscodes zu beginnen?
PS: In dem Buch Clean Code heißt es: Schreibe zuerst deinen Try-Catch-finally- Block. Das veranlasste mich, diese Frage zu stellen.
Wenn Sie von Anfang an keinen Code mit der entsprechenden Fehlerbehandlung und -protokollierung schreiben, wird dies meiner Erfahrung nach aufgrund von Zeitdruck nicht ausgeführt. Die erfolgreichsten Entwicklungsanstrengungen, die ich unternommen habe, waren die Ermittlung der grundlegenden Anwendungsstruktur, einschließlich des Codierungsstandards, der Art und Weise, wie Fehler behandelt werden, der Protokollierung, der grundlegenden Architektur und der Testtools.
Andernfalls werden Sie feststellen, dass Sie Aufgaben für Version 2.0 haben, z. B. "Fehlerbehandlung verbessern" und "Protokollierungssystem erstellen". Diese werden zugunsten neuer Funktionen gekürzt, und weil Sie "zu viel zu tun" haben, werden all diese Fehler in den Fehlerfällen behoben, über die Sie nicht nachgedacht haben. (Was ewig dauert, weil Sie kein Protokollierungssystem haben.
quelle
Kommt darauf an, was du tust
für ausnahmen:
Wenn Sie etwas schreiben, das wahrscheinlich fehlerhaft ist, oder wenn es gute Top-Level-Punkte gibt, die Ausnahmen aufblähen lassen, um sie zu schreiben, während Sie fortfahren.
Wenn Sie etwas schreiben, das Leistung benötigt und eine geringe Fehlerwahrscheinlichkeit aufweist, fehlt ein sinnvoller Platz, um Fehlerbehandlungsroutinen zu platzieren, schreiben Sie die Fehlerbehandlungsroutinen, wo das Testen nachweist, dass Sie sie benötigen.
Wenn Sie in beiden Fällen nichts Nützliches mit dem Fehler zu tun haben, ziehen Sie in Betracht, ihn in die Luft sprudeln zu lassen (kein Handler).
zur Protokollierung:
Wenn Sie einen Audit-Trail benötigen, sollten Sie zuerst die Protokollierung schreiben. Wenn Sie Fehler ganz nach oben sprudeln lassen, müssen Sie auch dort eine Protokollierung durchführen, damit das Protokoll erfasst werden kann.
Abgesehen von diesen Fällen füge ich die Protokollierung im Allgemeinen nur an den Stellen hinzu, an denen das Testen / Verwenden dies als notwendig erweist, und ich wähle normalerweise die Option, sie zu deaktivieren, sobald ich damit fertig bin.
quelle
Sie können die Überwachung und die Ausnahmebehandlung als Services implementieren. Für die Audit-Protokollierung auf Anwendungsebene sind Statusdaten zu jedem Geschäftsvorgang erforderlich. Die Möglichkeit, eine Anwendung in einem Geschäfts- oder Transaktionskontext zu überwachen, erfordert eine Überwachungsschnittstelle innerhalb des Dienstes, um Nachrichten zu senden, die den für den Dienstaufruf spezifischen Transaktionsstatus angeben. Dazu muss jeder Service bei kritischen Schritten im Geschäftsvorgang eine Statusmeldung senden. Sie können dann einen Echtzeit-Viewer erstellen, um Statusnachrichten (basierend auf der Semantik der Nachricht - z. B. Transaktions-ID) mit den Diensten in der Verbundanwendung zu korrelieren. Dies bietet eine End-to-End-Ansicht des Geschäftsvorgangs für das SLA-Management, die Fehlersuche und die Problembestimmung.
Ein Überwachungsdienst kann dann als Zustandsmaschine implementiert werden, die Nachrichten basierend auf in ihrer Konfiguration definierten Kriterien verarbeiten und aufzeichnen kann. Ein generischer Ausnahmebehandler kann den Überwachungsservice auch verwenden, um eine zentralisierte Ansicht von Problemen zu unterstützen, die in der Unternehmens-SOA auftreten, um die ausnahmebasierte Überwachung zu unterstützen. Jede nicht auftretende Bedingung in der Lösung wird instrumentiert, um eine Ausnahmemeldung an den Ausnahmehandler zu senden .
quelle
Schreiben Sie es, wenn Sie es brauchen, aber gestalten Sie es von Anfang an so, dass es darin enthalten ist.
Mit anderen Worten: Stellen Sie sicher, dass es eine Möglichkeit gibt, mit dieser Protokollierungsfunktion umzugehen, und fügen Sie die eigentliche Schrauben- und Mutternfunktion (welche Meldungen protokolliert werden) später hinzu, wenn dies erforderlich ist. Fügen Sie in Ausnahmefällen den Haken hinzu (und schließlich, wenn Sie den haben), bevor Sie den Wurf schreiben. Das hilft, nicht zu vergessen und sich eine Wiederholung oder schlimmstenfalls einen Fehler / Absturz zu ersparen.
quelle