am 4. Februar 2010
Klingt wie ein Songtitel, ist aber keiner. Zumindest keiner, den ich kenne. Ich gehe jetzt mal von aus, dass jetzt in jedem Kopf eine mögliche Melodie zu dem Song komponiert wird. Also wie komme ich zu dem Thema. Gestern hat mir ein Leser (Andy) eine interessante Frage gestellt bezüglich PHP_CodeSniffer Sniffs. Das ganze habe ich dann mal zum Anlass genommen, da einen Artikel draus zu machen.
Andys Frage war eine sehr berechtigte. In den Sniffs, wird eine Projektkonfiguration dadurch hergestellt, dass man eine Klasse ableitet und einfach Attribute ändert. Konfiguration über Ableitung finde ich sehr fies. Zumindest so wie es dort betrieben wird. Die Frage von Andy war ungefähr folgende: “Macht das Sinn, wie das da gehandhabt wird” und wenn nein “Wie sollte man es lösen”.
Anfänglich wollte ich ausholen, wie man es schön machen könnte, wie die perfekte Architektur aussehen sollte. Dann kam mir aber ein Leitspruch, den ich mal von einem Kollegen (Danke Jan) gehört hatte. “Don’t fight the framework“. Wenn ich das jetzt für mich anwende, dann bedeutet das, ich mache alles so wie die Macher des Frameworks es mir vorleben. Und das ist nun mal das Konfigurieren über Ableitung. Also sollte man es bei eigenen Sniffs auch so machen.
Den großen Vorteil, den man so gewinnt, ist die Wartbarkeit. Jeder, der schon mal mit dem PHP_CodeSniffer gearbeitet weiß genau, wie er rangehen muss. Er kann intuitiv die Sniffs erweitern/konfigurieren, weil es überall so funktioniert. Natürlich tut einem das anfänglich weh, aber an Standards sollte man sich halten, auch wenn es einem dumm vorkommt – in dem Kontext ist es meistens der Weg des geringsten Widerstandes. Das bedeutet natürlich auf keinen Fall, dass ihr in euren Projekten so arbeiten sollt, aber wenn man was bestehendes Verwendet, hält man sich an die dort geltenden Regeln.
Natürlich ist das wie immer eine persönliche Meinung, die ich gerne von euch mit besseren Ideen/Meinungen bombadiert bekommen hätte.