tiny little gizmos

Design Patterns und Webapplikationen

Ich bin ein Mann der goldenen Mitte. Extreme liegen mir nicht so. Auch nicht beim Programmieren.

Auf der einen extremen Seite der möglichen Umsetzung von Webapplikationen in PHP steht unübersichtlicher, verschwurbelter Spaghetticode. Nichts gegen Spaghetti auf dem Teller, aber bitte nicht im Computer.

Auf der anderen Seite finden sich komplett durchgestylte, mehrstufige, sauber abgeleitete Klassenhierarchien die auf bewährte Designpatterns zuzückgreifen. Das ist ganz toll – allerdings nicht für Webapplikationen in PHP. Das Problem dabei ist: Performance.

Ich bevorzuge Modularisierung, Wiederverwendbarkeit Schichtentrennung und so weiter. MVC ist dabei ne gute Idee, wenn auch nicht die einzig denkbare Option. Aber schlank muss es sein.

Komplexe Objekthierarchieen sind kein Problem, wenn sie compiliert und im Speicher gehalten werden. Bei PHP-Anwendungen ist das normalerweise nicht so. Bei jedem Request müssen diverse Dateien durch den PHP-Interpreter von der Festplatte geladen, übersetzt, initialisiert und ausgeführt werden – das dauert.

Zumal die Komplexität von “normalen” Programmen bei Webanwendungen in der Regel nicht gegeben ist. Keine Nebenläufigkeit, Events und ähnliches. Im Prinzip geht es immer um eine Abfolge mehrerer seperater Requests. Und jeder Request arbeitet eigentlich immer die folgenden Schritte ab: Eingabe, Verarbeitung, Ausgabe.

Es geht also um das rechte Maß. Soviel Trennung, Modularisierung und Abstraktion wie nötig – aber eben auch nicht mehr. Für zzap habe ich eine recht schlanke und dennoch flexible Lösung gefunden, denke ich.