• WTFs im eigenen Code

    von am 17. Dezember 2008

    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.

    Nils Langner

    Auch wenn Ihr es mir nicht glauben werdet, aber ich habe nichts gegen PHP. Ich rege mich einfach nur gerne auf. Ok so schlimm ist es auch nicht. Eigentlich wollte ich schon immer einen Blog haben und da ...

    Zum Profil von Nils Langner

    13 Kommentare »


    • unset
      am 17. Dezember 2008 um 08:21 Uhr

      “getUserIdById” klingt nach einer eigenartigen Art und Weise zu prüfen, ob eine ID existiert ;)


    • Sebastian
      am 17. Dezember 2008 um 08:26 Uhr

      Ja, das ist definitiv eine der viele Zeilen aus unserem Projekt, die mir im Gedächtnis bleiben werden :)


    • Sebastian
      am 17. Dezember 2008 um 08:32 Uhr

      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
      }


    • DR
      am 17. Dezember 2008 um 09:54 Uhr

      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.


    • Dominik
      am 17. Dezember 2008 um 10:10 Uhr

      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;
      }


    • kb
      am 17. Dezember 2008 um 10:30 Uhr

      Naja das hochzählen in der For-Schleife war früher zu Basic-Zeiten nicht unüblich :)


    • danielj
      am 17. Dezember 2008 um 10:50 Uhr

      Das mit der for-Schleife erinnert mich an http://thedailywtf.com/Comments/The-Speedup-Loop.aspx :)


    • Dubbel
      am 17. Dezember 2008 um 18:47 Uhr

      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 ^^


    • Axel
      am 18. Dezember 2008 um 09:21 Uhr

      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 :D


    • Ralf Eggert
      am 18. Dezember 2008 um 09:29 Uhr

      Ich habe hier noch ein Projekt aus 1998 auf der Platte in meinem Archiv, das ist ein einziges WTF! ;-)


    • ste
      am 23. Dezember 2008 um 14:27 Uhr

      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 ;)


    • ste
      am 23. Dezember 2008 um 14:29 Uhr

      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>
      ‘;


    • Bastian
      am 20. August 2009 um 11:23 Uhr

      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
      }

    RSS Feed für Kommentare zu diesem Artikel. TrackBack URL

    Hinterlasse einen Kommentar

    Werbung
    PHP Magazin
    Ausgabe 02/2010

    Dieses Mal mit Artikeln zu den Themen OpenSocial und Apache Shindig, Graphentheorie, Smarty3

    t3n
    Ausgabe 19

    Social Media (R)evolution. Weitere Themen sind noSQL, Crowdsourcing ...

    PHP Journal
    Ausgabe 2/2010

    PHP & Windows optimal nutzen, die besten PHP-CMS im Überblick, Google-API mit Zend Framework nutzen.

    Wir wurden schon öfters gefragt, ob man uns nicht irgendwie unterstützen kann. Die Antwort war immer einfach: Klar! Am einfachsten ist es eure nächsten Einkäufe bei Amazon über unsere Link abzuwickeln. Damit würdet ihr uns schon sehr helfen. Über Co-Autoren freuen wir uns aber noch mehr.