Das Kreuz mit dem Logging

Stefan - 12. April 2008

Es gibt manchmal Artikel in anderen Blogs, die führen zu einem Aha-Erlebnis. Ein aktueller Fall ist der Beitrag The Logs That Bind … in dem vorzüglichen und relativ neuen O’Reilly-Blog Beautiful Code. Michael Feathers erzählt dort von einer interessanten Szene als er versuchte, einem Entwicklerteam beim Überarbeiten eines Programm zu helfen, das etliche sehr lange Methoden enthielt. “Das Allheilmittel dafür liegt üblicherweise auf der Hand: Refactoring”, erzählt Feathers – doch hier wurde er von den Entwicklern gestoppt. Denn in den Methoden waren zahlreiche Logging-Aufrufe enthalten, die jeweils den Namen der aktuellen Methode enthielten. Nachdem sie verschiedene Möglichkeiten durchdiskutiert hatten, wendeten sie sich einem anderen Codeabschnitt zu.

“Das erinnerte mich, wie sehr ich logging hasse”, war das Fazit von Feathers – und für mich der Augenöffner. Denn sofort fielen mit mehrere Projekte ein, die ich mit ziemlich sauberen Code begonnen hatte, die aber am Ende fürchterlich unstrukturiert waren, weil ich irgendwann Logging einbauen musste. Und, im Rückblick wird mir das erst richtig deutlich, mit dem Logging begann jeweils das Chaos, denn Logging bedeutet, Programmbestandteile zu koppeln, die an sich wenig miteinander zu tun haben (sollten).

Wenn Logging durch den Code wuchert, wird das Programm schwieriger zu verstehen und man ist zurückhaltend, Änderungen vorzunehmen. (…) Wenn du loggst, musst du die Abhängigkeiten, die damit eingeführt werden, beherrschen; wenn nicht, werden sie dich beherrschen.

Liest man den Beitrag zwischen den Zeilen, so lautet der unausgesprochene Rat von Feathers, möglichst auf Logging zu verzichten. Doch gerade Anwendungen, die viel mit dem Web bzw. mit diversen Webseiten kommunizieren, kommen ohne Logging nicht aus. Ein Webcrawler braucht das Logging als quasi integralen Bestandteil: Milliarden von Seiten auf Millionen von Webservern, die alle ihre eigene Konfiguration haben. Mit Unit-Tests ist dieser Vielfalt nicht Herr zu werden, also bleibt nichts anderes übrig als ein de facto nicht ausreichend getestetes Programm in die freie Wildbahn zu entlassen. Ohne Logging ist das fahrlässig.

Abgelegt in: Perl

2 Kommentare:

was logging angeht kann ich mich der meinung in demartikel nur anschließen!!

Jop, bei mir ist es genauso.
Früher habe ich fast alles geloggt, mittlerweile brauch ich das nicht mehr.

Schreibe einen Kommentar
benötigt
benötigt (wird nicht angezeigt)
optional

Suchen