Sunday, January 01, 2006

The Daily WTF - Howto do not für Programmierer

Die Webseite Daily WTF ist ein Internetforum über schlechten Stil.
Schlechten Programmierstil.

Guten Stil beim Programmieren halte ich für sehr wichtig. Alle Kommilitonen aus dem Softwaretechnikpraktikum und auch meine Studenten aus meiner Übungsgruppe können davon ein Wort singen.
Und genau es halb finde ich eine solche Seite auch mal richtig gut.

Dort werden alle vergehen gegen den guten Programmiergeschmack gesammelt. Verstöße gegen Lesbarkeit und Wartbarkeit werden dokumentiert.

Meine zwei Lieblingsbeispiele bisher sind:

  1. Prgamatically Registering: Mit folgendem Visual Basic Code wurde versucht eine OCX-Komponenten beim Betriebssystem zu registrieren. Anstatt den ordentlichen Bibliotheksbefehl zu verwenden wird die Registierung über "Start"-"Ausführen" als Kommandozeilenbefehl durchgeführt.

    Private Declare Function SetCursorPos Lib "user3" (ByVal x As Long, ByVal y As Long) As Long
    Private Declare Sub mouse_event Lib "user3" (ByVal dwFlags As Long, ByVal dx As Long,
    ByVal dy As Long, ByVal cButtons As Long,
    ByVal dwExtraInfo As Long)
    Private Const MOUSEEVENTF_ABSOLUTE = &H8000 ‘ absolute move
    Private Const MOUSEEVENTF_LEFTDOWN = &H2 ‘ left button down
    Private Const MOUSEEVENTF_LEFTUP = &H4 ‘ left button up

    Private Sub Register(OCXName As String)
    SetCursorPos 32, Screen.Height / 15 - 10
    mouse_event MOUSEEVENTF_ABSOLUTE, 32, Screen.Height / 15 - 10, 1, 1
    mouse_event MOUSEEVENTF_LEFTDOWN, 32, Screen.Height / 15 - 10, 1, 1
    mouse_event MOUSEEVENTF_LEFTUP, 32, Screen.Height / 15 - 10, 1, 1
    SendKeys ("R")
    SendKeys ("regsvr32 " & OCXName)
    SendKeys (vbKeyReturn)
    End Sub

  2. Ebenfalls ein Fall für den schlechtesten Code ist Quadrasort. Ein vierfacher Buddlesort zum Sortieren von YYYYMMDDHH.ext-artigen Dateinamen. Collections.sort erledigt dies mit genau einem Aufruf.

Ich bin ein entschiedener Gegner von dem Auffassung in der Informatik den Programmieren an der Basis die Hauptschuld an schlechter Software zu geben und auch an dem Trend die Arbeit des Programmierers als Trivialität abzutun.
Trotzdem oder gerade deshalb ist so eine Sammlung von Beispielen wie man es nicht programmieren soll amüsant.
Thomas hat vorgeschlagen diese Seite auch den Studenten im ersten Semester zu zeigen. Dort würden Sie auf lustige Art und Weise etwas lernen.
Da würde ich aber eher das Code Reading-Konzept befürworten.

No comments:

Post a Comment