Neues, altes Theme
Gerade eben habe ich auf ein neues Theme umgestellt. Das Design bleibt gleich, aber die Technik dahinter habe ich komplett ausgetauscht. Zuletzt war das Theme „Platform PagesLines“ im Einsatz. Einerseits ist es sehr umfangreich ausgestattet und bietet extrem viele Konfigurationsmöglichkeiten. Damit einher kommen aber ein völlig überladener, tief verschachtelter Quelltext und ein recht großer PHP-Part, da viele Seitenteile durch zig Funktionen und Klassen erzeugt werden. Die Entscheidung das Theme neu zu schreiben viel mir daher nicht sonderlich schwer.
Wie es sich heutzutage gehört, ist das Markup sehr flach gehalten und setzt auf HTML 5. Um die Stylesheets schneller und effizienter zu entwickeln, setze ich auf das CSS-Framework Compass. Dessen Grundlage ist das Framework SASS, das die Style-Schreiberei durch mögliche Verschachtelungen, Variablen, Berechnungen, Vererbung, Style-Templates (Mixins) deutlich vereinfacht. Dazu schreibt man einfach die Styles im SCSS-Format und SASS bzw. Compass erstellen aus daraus eine voll einsatzfähige CSS-Datei — auf Wunsch schon komplett minified bzw. compressed.
Jedem, der viel mit CSS arbeitet, kann ich nur unbedingt empfehlen, sich Compass näher anzuschauen. Selbst nach nur kurzer Einarbeitung spart man sich enorm viel Arbeit und kann auch spätere Änderungen deutlich schneller vornehmen, besonders wenn es um Selektor-Gruppen geht.
Für die Zukunft plane ich weitere Optimierungen, u.A. den Einsatz von ControlJS, das JavaScripts asynchron lädt und erst nach Rendern des DOMs ausführt. Zusätzlich möchte ich an die Anzahl der HTTP-Requests pro Seitenanruf auf ein absolutes Minimum reduzieren.
Ziel des Ganzen ist, wie schon auch der Einsatz von Amazon CloudFront als CDN und memcached, ein kleines, hoch performantes Spielzeug zu haben. Übung darin schadet nie, denn Ladezeiten haben einen sehr großen Einfluss darauf, ob ein Besucher bleibt oder nicht. Dazu plane in nächster Zeit auch einige Beiträge zu Strategien, Ladezeiten zu optimieren bzw. entsprechende Tutorials.