Matthias schrieb den sehr empfehlenswerten Tipp:
Schreib deinen Code, als würde er auf's CPAN kommen
Dem kann ich mich nur anschließen. Auch wenn Code nur intern zum Einsatz kommt (was in der Praxis die Regel ist), sollte er stets nach den CPAN-Regeln und mit Hilfe der üblichen Tools erstellt werden. Dazu gehören beispielsweise Module::Starter (und Plugins, ich verwende zum Beispiel Module::Starter::PBP und Module::Starter::Smart; Module::Setup sieht aber auch interessant aus), Module::Build und die üblichen Test-Tools.
Zusätzlich sollte man aber auch immer die folgende Regel aus Damian Conways Perl Best Practices (siehe auch: Tipps für Perl-Bücher; Amazon-Direkt-Link zu PBP) beachten:
Codieren Sie immer so, als wäre der Typ, der den Code pflegen muss, ein gewaltbereiter Pshychopath, der weiß, wo Sie wohnen.
Und dem möchte ich noch hinzufügen: es handelt sich bei dem gewaltbereiten Psychopathen um den mit der Kettensäge ...
Um die Gefahr ein wenig zu reduzieren gibt es natürlich auch ein passendes Perl-Werkzeug: Perl::Critic und Test::Perl::Critic. Perl::Critic wacht dann im Rahmen der üblichen Test-Suite bei einem ./Build test darüber, dass der Code halbwegs sauber ist. Der Schwellwert (über den Parameter severity gesteuert) steht standardmäßig auf dem schwächsten Level 5, ich setze den auf jeden Fall auf 3 herab, so dass mehr Konstrukte angemeckert werden. Mit verbose=11 lassen sich ausführliche Meldungen erzwingen. Außerdem schalte ich ein paar Tests ab: RequirePodSections verlangt mir bei Kunden-Projekten zu viele bzw. die falschen POD-Sektionen, und RequirePodAtEnd verbietet POD direkt bei den Unterfunktionen, ich habe die Doku aber lieber da als am Ende vom Code.
Auf jeden Fall lassen sich so einige unsichere und gefährliche Konstrukte ausschließen. Perl::Critic meckert zum Beispiel auch, wenn einzelne Unterfunktionen zu komplex (und damit zu schwer verständlich) oder Blöcke zu tief verschachtelt sind. So kann man nicht nur die Kollegen sondern auch sich selbst ganz gut zwingen, weniger komplizierten Code zu schreiben: so ist dann zum Beispiel ab 20 if-Abfragen und ähnlichem pro Unterfunktion Schluss. Denn, man denke an den Psychopathen mit der Kettensäge ...
Aktuelle Kommentare