am 9. April 2009
Copy and Paste ist meiner Meinung nach eines der schlimmsten verbrechen, die man einem objekt-orientierten Code antun kann. Natürlich gibt es fälle, bei denen es schwer oder sogar unmöglich ist duplizierten Code zu vermeiden, aber in 99,9% kann es durch geschickte Vererbung oder Delegation umgangen werden.
Ich möchte euch heute gar keine Techniken vorstellen, die ihr anwenden könnt um C&P auszulösen, sondern euch ein Werkzeug an die Hand geben, mit dem ihr den doppelten Code findet. Das Tool, das ich meine nennt sich phpcpd (PHP Copy Paste Detection) und stammt aus der Feder (bzw. Keyboard) von Sebastian Bergmann. Ich glaube früher konnte PHPUnit dies nativ selbst, sollte aber in einer der nächsten Versionen verschwinden. Was macht dieses Tool also? Ganz einfach, ich gebe ihm mein Projekt und er schaut nach, welche Zeilen Code er wiederholt findet (und das erstaunlich schnell). Dabei könnt ihr per Kommandozeilen-Parameter einstellen, ab welcher Zeilenanzahl ihr Alarm schlagen wollt. Ich denke hier ist so etwas wie 3-5 Zeilen sinnvoll.
Bei dem Begriff Kommandozeile sind bestimmt die ein oder anderen von euch hellhörig geworden. Das Tool ist natürlich in PHP geschrieben und kann so ohne Probleme in euern Bauprozess mit eingebaut werden. So könnt ihr ohne Probleme euern Continuous Prozess dazu nutzen doppelten Code zu finden und ihn für immer zu verbannen.
Noch eine kleine Information für unsere Stammleser. Da wir Samstag und Sonntag keine Artikel mehr haben und an Feiertagen ja auch nicht, wird es erst wieder am nächsten Dienstag etwas zum Lesen geben.