Artikelformat

CodeSniffer

Der PHP CodeSniffer ist ein PHP-Tool, dass den Sourcecode testet. Es werden sogenannte Sniffs angewendet, die bestimmte Eigenarten überprüfen. Hierbei wird im Gegensatz zu PHPUnit kein funktionaler Test durchgeführt. Der CodeSniffer kann im PEAR gefunden werden und ist daher relativ leicht zu installieren. Da er keine Abhängigkeiten zu anderen Bibliotheken hat, kann man das Tool auch gerne manuell entpacken.

Der Hauptbestandteil des Sniffers ist der „Standard“. Das ist eine gewisse Menge von Sniffs. Dadurch kann man sich viel Schreibarbeit sparen, wenn man immer wieder die gleichen Tests durchführen will.

Es besteht natürlich die Möglichkeit eigene Standards und Sniffs zu definieren. Praktisch ist hier, dass man natürlich auch auf die anderen Standards zugreifen kann. So kann man sich sozusgane einen Standard von einem anderen ableiten. Da die Struktur sehr ausgefeilt ist, handelt es sich nicht um ein übliches „extends“. Beispiele sind bereits im CodeSniffer vorhanden und auch im Internet gibt es hierzu Anleitungen.

Was man prüft ist dann wiederum eine Glaubensfrage. Man kann rein optische Tests durchführen, die überprüfen, ob die Einrückung mit Tabs oder Leerzeichen durchgeführt wurde, oder ob die öffnende Klammer hinter oder unter der Methodensignatur steht. Spannender ist aber die Tatsache, dass man auf gewisse Metriken testen kann wie beispielsweise auf McCabe („zyklomatische Komplexität“). Um die einzelnen Sniffs genauer zu betrachten schaut man am besten in der PEAR-Doku, denn es gibt da mehr als 100 verschiedene Tests …

Philosophische Betrachtung:

Zu diesem letzten Abschnitt hat mich mein Arbeitskollege Andre inspiriert und daher hier freundliche Grüße an ihn 😉 Ist solch ein Tool überhaupt sinnvoll? Die Frage kann ich nur mit einem klaren Jein beantworten. Programmieren ist meiner Ansicht nach ein sehr kreativer Prozeß. Daher muss man dem Künstler Programmierer entsprechenden Freiraum geben. Sobald man versucht diesen Prozeß zu industrialiseren, wird man gute Leute verlieren. Natürlich gibt es auch Entwickler, die einfach nur ihre Aufgaben erfüllen. Darum gibt es ja auch Künstler und Maler. Solch ein Tool kann nun einen gewissen Standard erzeugen. Dadurch kann man vermeiden, dass man unsauberen Code hackt. Der Programmierkünstler wird sich natürlich zuerst eingeschränkt fühlen. Aber ich denke, dass bei sinnvollen Regeln und einer sinnvollen Anwendung das Verständnis und die Akzeptanz wachsen wird. Bspw kann niemandem daran gelegen sein eine McCabe-Metrik größer 20 in einer Methode zu haben, das schreit doch nach Refaktorieren.

Schreibe einen Kommentar

Pflichtfelder sind mit * markiert.