Seit der Grundschulzeit, als Klein-Thomas fünfzigmal den Satz „Ich soll nicht durch den Klassenraum laufen” in Schönschrift in sein Hausheft schreiben musste, ist ihm Redundanz zuwider. Sicher, dass sich Weihnachten jedes Jahr wiederholt, hat schon seine Vorteile – vor allem wegen der Geschenke. Aber wer etwas älter wird der weiß, dass Weihnachten mit viel überflüssiger Arbeit verbunden ist.
Gleiches gilt auch für die Programmierung. Redundanz sieht im Quellcode nicht nur unschön aus, sie ist auch mit überflüssiger und unnötiger Arbeit verbunden. Sicher, es gibt die zwei Freunde Kopieren und Einfügen. In der Programmierung sind das aber oft falsche Freunde, deren Heimtücke sich spätestens dann zeigt, wenn etwas überarbeitet werden muss.
Wesentlich besser ist es, von Beginn an den eleganteren Weg zu wählen. Bereits mit ganz einfachen Mittel lässt sich viel einsparen. Dazu ein kleines Beispiel. Um den anfangs erwähnten Satz fünfzigmal wiederzugeben, wäre wohl eine Lösung eine Schleife (PHP-Code):
for ($i=0; $i<50;$i ++) {
echo 'Ich soll nicht durch den Klassenraum laufen. ';
Schon da fangen aber für viele die ersten Schwierigkeiten an. Auf den ersten Blick erschließt sich möglicherweise nicht, warum die Variable $i den Startwert Null hat. Auch kann es sein, dass jeder der fünfzig Sätze ein individuelles Merkmal bekommen soll:
Thomas soll nicht durch den Klassenraum laufen.
Marc soll nicht durch den Klassenraum laufen.
Oliver soll nicht durch den Klassenraum laufen.
Auch dafür aber gäbe es eine Lösung:
$namen = array ('Thomas','Marc','Oliver')
for ($i=0; $i<3;$i ++) {
echo $namen[$i].' soll nicht durch den Klassenraum laufen. ';
Es gibt aber Fälle, wo solche Vorgehensweise nicht möglich ist und sich auf Grund des Aufwandes bei der Umstellung nicht anbietet. Selbst dann aber kann zumindest ein Teil der Redundanz verhindert werden:
$satzteil = ' soll nicht durch den Klassenraum laufen. ';
echo 'Thomas'.$satzteil ;
echo 'Marc'.$satzteil ;
echo 'Oliver'.$satzteil ;
Letztendlich ist der beste Weg der, von Beginn an sauber zu programmieren (oder eben nicht durch den Klassenraum zu laufen) und so die Redundanz im Code zu vermeiden.
6 Kommentare
… Sir, Sie haben mich auf halben Weg bereits verloren!
JBJ
@John B. Jones: Ich kann das gerne wiederholen … ;-)
Der logische nächste Schritt um Redundanz zu vermeiden, wäre jetzt die Sache in eine Klasse zu packen und den Ausgabesatz und die Anzahl der Durchläufe abstrakt zu halten.
Viele halten das immer für einen Scherz, wenn ich sage, ich würde da eine Klasse raus machen, ist aber völlig ernst gemeint. Wenn man in seinem Programm irgendwo nochmal so eine Schleife mit einem Aussagesatz und einem Schuldigen braucht muss man nur die Klasse zu erzeugen, die Felder zu füllen und die Ausgabemethode aufzurufen.
@LeSven: na, DU hast mich noch viel früher verloren! :)
JBJ
Bahnhof???
Gruß Ilona *programmierblond*
Danke für die schöne Erklärung, das ist ja so einfach wie annodazumal BASIC. :) Man müsst sich nur mal aufraffen, und was machen.