Psychologisch richtiger Einsatz des PHPCodeSniffers
Ich habe heute mal wieder ein wenig auf der eBusiness Akademie gestöbert und bin dabei über einen etwas älteren, aber dennoch interessanten Artikel von mir gestoßen, den ich hier noch mal veröffentlichen will.
Bei der Verwendung von PHPUnderControl wurde besonders Wert auf die Verwendung des PHPCodeSniffers gelegt. Die Verwendung dieses Tool, dass ähnlich wie das Java Pendant Checkstyle, Verstöße gegen die definierten Coding Conventions meldet, kann aber noch verbessert werden. Der PHPCodeSniffer durchforscht das komplette Projekt nach Verstößen, aber genau dies will man nicht immer. Natürlich ist es sinnvoll alle Regeln immer und überall einzuhalten, aber man sollte dabei die psychologische Ebene nicht außer Betracht lassen. Nehmen wir an, das Projekt wird erst nach einem gewissen Zeitraum mit der Unterstützung einer continuous integration Lösung versehen oder sie führen erst sehr spät verpflichtenden Coding Conventions ein, dann sollten die Tests, die sie mit dem Sniffer durchführen sich nicht mit Fehlern überschlagen. Hunderte von Verstößen sind keine Seltenheit, wenn eine gewisse Anzahl von Legacy Code Zeilen besitzt. Deswegen sollte man bei der Einführung darauf achten, dass die Anzahl der Fehler nicht in den dreistelligen Bereich gelangt, da sich sonst niemand mehr gegen neu anfallende Verstöße zur Wehr setzt. Diese Minimierung der auftretenden Probleme kann auf zwei Arten erfolgen.
Die erste Methode wäre der Einsatz eines Source Code Management (SCM) Tools, mit dem sie in der Lage sind, alte Fehler ausfindig zu machen und sie aus der Liste zu streichen. Dabei machen sie es sich zu nutze, dass die meisten SCM in der Lage sind die letzten Änderungen einer jeden Zeile ihres Source Codes mit einem Datum zu versehen. Schreiben sie also ein einfaches Skript, das es möglich macht, alte Fehler zu erkennen und sie somit nicht als Verstoß zu markieren.
Die zweite Möglichkeit ist die Einführung der neuen Regeln erst nach und nach. Fangen sie mit Regeln an, bei denen sie sich sicher sind, dass sie fast überall eingehalten wurden. Erweitern sie ihren Regelsatz wenn eine Regel so gut wie keine Verstöße mehr besitzt.
Beide Ansätze sind sehr einfach in die Tat umzusetzen, falls möglich sollte aber der erste bevorzugt werden, da man sicher stellen kann, dass keine neuen Fehler erzeugt werden und somit sich die Qualität verbessert.