In Vorlesungen hört man ja ab und zu Horror-Geschichten über „die Realität”™. Man lacht dann meist darüber und fragt sich, ob es denn stimmen kann, das in freier Wildbahn wirklich dermaßen unglaublich schrecklicher Code existieren kann. So blöd kann ja keiner sein.
Letzte Woche habe ein solches Beispiel erlebt, bei dessen Code-Analyse ich minutenlang nicht mehr aus dem Lachen herauskam. Auch wenn Weinen wohl angemessener gewesen wäre.
Es ging um eine Webplattform, die trotz 8‑Kern-Systems mit 32 GB RAM kaum noch benutzbar war aufgrund extrem langer Antwortzeiten im Minutenbereich. Ein Hauptproblem war eine Mehode, die folgendes gemacht hat:
- Lade zu Beginn erstmal alle Objekte aus der Datenbank in eine Variable.
- Lade, weil’s so schön ist, auch direkt alle abgeleiteten Objekte abgeleiteter Tabellen in Variable.
- Führe diverse Transformationen mit allen diesen Objekten aus (deren Sinn sich mir nicht zu 100% erschlossen hat).
- Filtere ca. 80% der Objekte raus.
- Führe mit der verbleibenden Objekten weitere Transformationen durch.
- Ermittle schließlich die Anzahl der Elemente, die in der „Hauptvariable” noch drin sind, und …
- verwende diesen Wert nie wieder.
Überflüssig zu sagen, dass auch die anderen Variablen überhaupt nicht verwendet werden. Tja…
Willkommen in der Realität! (Fluchtmöglichkeiten sind nicht ausgeschildert.)
(Nachtrag: Zum Thema: devopsreactions.tumblr.com, codinghumor.tumblr.com uvm.)