Alexander (HH): groooße Perlscripte!

Beitrag lesen

Moin Moin!

Wie macht ihr sowas?

Statische Resourcen überlasse ich liebend gerne dem Webserver, der ist nämlich wesentlich schneller als alles, was man mit PHP, Perl oder jedem anderen System dazwischenfrickeln kann. Stichwort sendfile().

Wenn es denn nicht rein statisch geht, werfe ich den Interpreter nicht erst dann an, wenn Holland in Not ist, sondern habe mein Programm bereits fertig zum Ausführen im Speicher. Und damit Fehler im Programm nicht den Webserver töten, läuft das Programm in einem (oder mehreren) eigenen Prozessen, mit denen der Webserver über eine festgelegte Schnittstelle kommuniziert. Stichwort FastCGI.

Ich trenne Code und Darstellung, anders als z.B. in PHP oder ColdFusion üblich. Stichwort Templates, z.B. mit dem Template-Toolkit.

Und schließlich sorgt irgendwo im Code ein Dispatcher dafür, dass eingehende Requests eine von mehreren Requesthandler-Klassen erreichen. Die werden meistens tatsächlich erst dann geladen, wenn sie gebraucht werden, per require $filename. Danach bleiben sie "auf Verdacht" im Speicher, bis irgendwann 1.000 oder 10.000 Requests abgearbeitet sind und sich der Anwendungsserver neu startet.

Und AUF JEDEN FALL laufen meine Perl-Anwendungen im Taint-Modus, wenn sie irgendwie mit dem Netzwerk kommunizieren, d.h. die Scripte beginnen mit #!/usr/bin/perl -T und verifizieren extrem paranoid sämtliche Eingaben, z.B. mit Data::FormValidator.

Normalerweise schreibt man nicht alles von Null neu, sondern benutzt Frameworks wie Catalyst, CGI::Application, oder meinetwegen Plack.

Alexander

--
Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".