RSS Der tägliche WTF
Folgen
CodeSOD: Alles zählen
Heute ist Wahltag in den USA und viele Menschen denken an die Auszählung. Der diskutierte Code hat jedoch nichts mit der Auszählung von Stimmen zu tun, ist aber dennoch problematisch. Der Code stammt aus einer alten Anwendung, die 2007 veröffentlicht wurde und auf die Zeilenbegrenzung von 65.536 in Excel verweist, die in Excel 2007 auf 1.000.000 erhöht wurde. Allerdings liest der Code tatsächlich eine CSV-Datei und keine Excel-Datei. Der Code konstruiert den Dateinamen zweimal, was unnötig ist. Das eigentliche Problem ist jedoch, wie der Code die Zeilen zählt, was ineffizient ist und bei großen Dateien schlecht performt. Der Code liest die gesamte Datei in den Speicher, teilt sie in Zeilen auf und zählt dann die Länge. Dieser Ansatz ist für große Dateien, von denen es viele gab, schrecklich. Leider will niemand den Code reparieren, weil es die "rühre es nicht an"-Regel für alte, veraltete Code gibt. Stattdessen verspricht die Geschäftsleitung, ein neues Ersatzprojekt zu starten, aber bis dahin bleibt der Code unkorrigiert.