Facebook
Twitter
Google+
Kommentare
13

WTFs im eigenen Code

Als erstes möchte ich euch für die vielen Kommentare gestern danken. Dafür, dass ihr mal die schreibfaulste Lesergemeinde wart ist da doch ganz schön viel zusammen gekommen. Vielen Dank dafür.

Jetzt aber mal wieder, wie gewünscht, ein kleines WTF. Aber nicht wie üblich über PHP, sondern eher über alten Code, den man in größeren Projekten nun mal so findet. Sebastian, mein Ex-Kollege, hatte zwar schon mal drüber erzählt, aber vielleicht kennt der ein oder andere seinen Blog ja nicht.

Was ich aber vorweg sagen muss, ist, dass unser neuer Code sauber ist. Dank Codereviews und Unittests ist er auch stabil. Aus diesem Grund habe ich auch kein schlechtes Gewissen, mal ein wenig zu lästern. Aber wieder zum eigentlichen Punkt.

Ich bin mal wieder über eine nette Methode gestoßen. Sollte man einen beschreibenden Funktionsnamen wählen, so müsste sie „getUserIdByUserId“ heißen. Ganz genau, ein wunderbarer selbstgebauter „What the fuck“. Die Methode nimmt also eine User ID, erstellt darauf ein Userobjekt, lädt es aus der Datenbank, holt sich von dem Objekt die ID und gibt sie zurück. Genial.

Nennt man so etwas eine softwaretechnische Arbeitsbeschaffungsmaßnahme? Ich weiß es nicht. Ich glaube wir werden es auch nicht Refaktorisieren, da es einfach Spaß macht ab und zu diese Stelle wieder neu zu entdecken.

Da fällt mir gerade auch noch ein kleines Highlight aus meiner Zeit im Fraunhofer Institut ein. Wir hatten ein System auf einen neuen Rechner portiert, der einfach mehr „Bums“ hatte. Die klugen Entwickler, die vor mir entwickelt hatten mussten das Programm irgendwie runterbremsen, da die Mechanik, die angeschlossen war nicht mit Geschwindigkeit zurecht kamen. Was haben die Helden gemacht? Man möchte meinen, dass ein sleep oder ähnliches hier passend wäre. Aber nein! Man kann ja einfach bis 1000000 zählen in einer For Schleife.

Ist schon herrlich, was man mit 10 Jahren Entwicklungserfahrung alles gesehen hat.

Über den Autor

Nils Langner

Nils Langner ist der Gründer von "the web hates me" und auch der Hauptautor. Im wahren Leben leitet er das Qualitätsmanagementteam im Gruner+Jahr-Digitalbereich und ist somit für Seiten wie stern.de, eltern.de und gala.de aus Qualitätssicht verantwortlich. Nils schreibt seit den Anfängen von phphatesme, welches er ebenfalls gegründet hat, nicht nur für diverse Blogs, sondern auch für Fachmagazine, wie das PHP Magazin, die t3n, die c't oder die iX. Nebenbei ist er noch ein gern gesehener Sprecher auf Konferenzen. Herr Langner schreibt die Texte über sich gerne in der dritten Form.
Kommentare

Ein Kommentar

  1. Fällt mir gerade auch noch dazu ein: wenn man so durch irgendwelche Foren und Seiten stöbert, auf denen Programmieranfänger Hilfe finden, lesen sich interessanterweise sehr oft solche Sachen wie „wie kann mein Programm nichts machen“, wo dann solche komischen Sachen herauskommen wie:

    if( $condition == true )
    foo( );
    else
    doNothing( );

    function doNothing( ) {
    // Do Nothing
    }

    Reply
  2. Das mit der for-Schleife war früher (gaaaaaanz früher) Gang und Gäbe. In BASIC-Listings, die ich noch von meinem Schneider CPC 464 habe, auf dem ich mir Programmieren beigebracht habe, wurde häufig so ‚gewartet‘. Vielleicht war da noch ein Programmierer der ganz alten Schule am Werk.

    Reply
  3. Man entdeckt irgendwann immer etwas über das man sich im Nachhinein nur wundern kann, was ja auch mit zunehmendem KnowHow zu tun hat. Meine persönlich schönste Entdeckung stammt aus einem CMS-System in dem folgende Zuweisung des Wertes 1 vorgenommen wird:

    if((int)$foobar){
    $foobar = $foobar/$foobar;
    }

    Reply
  4. Ich lasse meinen TI-Taschenrechner immer die Wurzel auf Kommazahlen ausrechnen, weil es kein Sleep gibt – blöd nur, dass dann schon nach wenigen Stunden die Batterie leer ist ^^

    Reply
  5. Eins meiner absoluten WTF Highlights ist folgender Code ( stamm nicht von mir !!!! ).

    …..
    $count = 0;

    foreach( $someArray as $key=>$val )
    {
    $count = $count + 1;
    }
    …..

    Es wurde die Anzahl der Elemente in einem Array ermittelt 😀

    Reply
  6. Einer meiner persönlichen Highlights war eine automatische Weiterleitung, die wir beim Provider in Auftrag gegeben haben. Als wir ca. ein Jahr später mit der Seite auf einen anderen Server umgezogen sind, hab ich mir die Weiterleitung mal angesehen, hier der Code aus der PHP Datei:

    #*********************************************************
    # URL-Redirector
    #*********************************************************

    echo ‚

    TRANSFER…

    ‚;

    Fazit: Warum direkt in einer Sprache schreiben wenn man nicht gleich mehrere brauchen kann 😉

    Reply
  7. hat mit dem code irgendwie nicht geklappt, also noch ein Versuch:

    #*********************************************************
    # URL-Redirector
    #*********************************************************

    echo ‚<!DOCTYPE HTML PUBLIC „-//W3C//DTD HTML 4.01 Transitional//EN“>
    <html>
    <head>
    <title>TRANSFER…</title>
    <meta http-equiv=“Content-Type“ content=“text/html; charset=iso-8859-1″>
    </head>
    <body>
    <script language=“JavaScript1.2″>
    <!–
    function redirect(URLStr) { location = URLStr; }
    redirect(„http://www.domain.xy/index.php?id=login“)
    //–>
    </script>
    </body>
    </html>
    ‚;

    Reply
  8. Mein Lieblings-WTF (tatsächlich in einem Projekt gefunden):
    if (1 == 2) {
    // hier standen jetzt etwa 20 Zeilen Code
    } elseif (1 == 1) {
    // hier wieder ein paar Zeilen Code
    }

    Reply

Leave a Comment.

Link erfolgreich vorgeschlagen.

Vielen Dank, dass du einen Link vorgeschlagen hast. Wir werden ihn sobald wie möglich prüfen. Schließen