Ich hatte einige, auf die ich stolz bin, und einige von ihnen wurden vor einigen Jahren von mir selbst geschrieben. Es muss nicht unbedingt fehlerhaft sein, nur schlechter Code.
code-quality
bug
code-smell
James
quelle
quelle
Antworten:
Ich weiß nicht, ob ich stolz auf das Update sein soll, weil es so offensichtlich war, aber der schrecklichste Code, an den ich mich erinnere, war dieses.
Anscheinend fügte der vorherige Entwickler jedes Mal neue Zeilen hinzu, wenn ein neuer (normalerweise irischer) Benutzer Fehler in der Anwendung bekam.
Ich lasse es als Übung für die Klasse, wie es behoben wurde.
quelle
UserName='John O''Reily'
wirdUserName='John OReily'
(wie C benachbarte String-Literale verkettet), aber nicht über die fehlenden'
Ich sollte nicht wirklich stolz darauf sein, aber aus irgendeinem Grund war es befriedigend.
Abgesehen davon, dass ich COBOL in der Schule hatte, hatte ich keine Erfahrung, aber ich war ein kleiner Mann am Totempfahl, und wir mussten einen Outsourcer mit kompiliertem Quellcode für die Y2K-Prüfung versorgen. Wir hatten eine einzige COBOL-Datei mit mehreren Routinen, die sich in der Datei spaghettiartig gegenseitig aufriefen, und sie war zu groß, um in unserer aktuellen IDE zum Kompilieren geladen zu werden. Es musste in mindestens zwei physische Dateien aufgeteilt werden, und diese Dateien mussten natürlich alles, was sie brauchten, in einer eigenen Datei haben. (Oder vielleicht gab es eine Möglichkeit, sie miteinander zu verknüpfen, aber ich kannte COBOL nicht wirklich.)
Wie auch immer, ich nahm diese Datei mit ungefähr 100.000 Zeilen und zog die Dutzende von Routinen vorsichtig auseinander, um zwei Sätze von Routinen zu finden, die unabhängig voneinander waren und daher in zwei separaten Dateien mit jeweils ungefähr 50.000 Zeilen existieren könnten. (Ich glaube, der Compiler konnte maximal 80.000 Zeilen verarbeiten, daher musste er ziemlich gleichmäßig angepasst werden.)
Ich las eine alte Sprache, die ich nicht kannte und die ich immer noch erfolgreich erledigte.
quelle
Ich habe einen Cursor aus einem Auslöser genommen und die Zeit zum Einfügen von 40.000 neuen Datensätzen von einer Stunde auf weniger als eine Minute reduziert. Letztendlich hatte dies zur Folge, dass ich 21 Millionen Datensätze in etwas weniger als der Eiszeit einfügen konnte, aber wir haben den Import von 20 Millionen Datensätzen erst nach dem Fix versucht, also habe ich keine Statistik darüber, wie viel Zeit wir gespart haben.
quelle
Es gab eine Basisklasse zum Erstellen von Bestätigungsdialogen für verschiedene Operationen auf Baumknoten. Sie müssten nur eine Nachricht bereitstellen, die im Dialogfeld angezeigt wird, und die auszuführende Aktion, wenn sie bestätigt wurde. Nettes System, aber es erlaubte keine spezielle Behandlung, falls kein Baumknoten ausgewählt war. Infolgedessen lautete der Text in einem der Dialoge: "Bitte wählen Sie Nein". Wenn Sie "Ja" ausgewählt haben, wurde eine Ausnahme ausgelöst. Tatsächlich eine sehr schöne Benutzererfahrung.
Ich habe dies durch Deaktivieren der ungültigen Operationen behoben.
quelle
Das Schlimmste, was ich je gesehen habe, war Java-Code zum Extrahieren von Schlüsselsätzen aus einem Textkorpus.
Um fair zu sein, dies ist nichts im Vergleich zu einigen der Sachen, die wir dort haben, aber es gibt immer noch einen massiven Unterschied in der Qualität davor und danach. Betrachten Sie den folgenden aktuellen Vorher- und Nachher-Code einer Funktion:
Vorher (versuchen Sie herauszufinden, was es macht, bevor Sie After anschauen!):
Nach:
quelle
Mein erster Programmierjob bestand darin, Installer in InstallShield zu schreiben. Ich habe ein Skript geerbt, das aus Tausenden Zeilen ohne Funktionen bestand , nur aus gotos. Es war umwerfend. Ich habe es umgeschrieben, alles hübsch und modular und datengesteuert gemacht, so dass ich binaries / art / etc bekommen konnte. und in weniger als einer Stunde ein neues Installationsprogramm erstellen, anstatt in der Woche, in der der Vorgänger gearbeitet hat. Ich war sehr stolz auf mich.
quelle
Ich denke , es kommt nichts auch nur annähernd an diese :
Die Reparatur? Eh, das sollte nicht viel Erklärung erfordern.
quelle