Über die Lesbarkeit von Code wird viel geschrieben. Aber trotzdem nie genug. Der PHP Blogger gibt nun sein Quentchen Weisheit dazu und hofft der Welt einen Gefallen zu tun. Nachfolgend ein paar Tipps, um Code lesbarer zu gestalten:
Gibt Bedingungen einen Namen
Jeder kennt die riesen if($prozent < $max_prozent && $prozent > $min_prozent && abs($durchschnitt_prozent - $prozent) < $durchschnitt_prozent_abweichung) - Dinger. Nach einer Woche hat man keine Ahnung mehr, was man mit diesem Code sagen wollte. Obwohl keine kryptischen Bezeichner verwendet wurden. Abhilfe? Ein Kommentar. Naja. Ich schlage mal was neues vor:
// Prozentzahl im zulässigen Bereich und keine
// größere Abweichung zum Durchschnittswert
$prozentzahl_im_zulaessigen_bereich= (
$prozent < $max_prozent
&& $prozent > $min_prozent
&& abs($durchschnitt_prozent - $prozent)
< $durchschnitt_prozent_abweichung
);
if($prozentzahl_im_zulaessigen_bereich)
{
// Mach was...
}
Cool, oder? Wenn man die selbe Bedingung oder eine erweiterte Version davon an verschiedenen Stellen benötigt, kann man es auch so machen. Und Kommentare müssen nur in speziellen Fällen überflogen werden… Ps: Schreibe auch Abbruchbedingungen für Schleifen aus! while($weitere_datenssatze_vorhanden) {}
Nutze Konstanten so oft wie möglich
Jedes Framework bietet sie an. PHP bietet sie an. Konstanten benennen Zustände oder feste Werte. Cool! Ein paar interessante Konstanten: DIRECTORY_SEPARATOR, CURRENCY_SYMBOL und THOUSANDS_SEP - Wenn das mal nicht lesbar ist…
Ein Ding ist ein Ding ist ein Ding
Benenne Objekte und Variablen nach Dingen und Zuständen und gibt Funktionen und Methoden Namen, die sich auf eine Aktion beziehen. Ein Beispiel:
define("FIRST_KEY", 1);
$haus->oeffneHaustuer(
$schluesselbund->nimmSchluessel(FIRST_KEY)
);
Organisiere globale Funktionen…
…obwohl sie eigenständig sind trotzdem in Hilfs-Objekten und mache sie statisch verfügbar. Ein Aufruf könnte so aussehen:
GraphicsHelper::generateThumbnail($fullsize_image);
Jedes Hilfsobjekt kommt in eine eigene Datei, die wie das Hilfsobjekt benannt ist: So findest Du Funktionsdefinitionen schneller und hast nicht eine riesige unsortierte Datei voll mit globalen Hilfsfunktionen.
Update: Verkette Funktionsaufrufe
Ein sehr mächtiges Feature ab PHP 5 ist Method-Chaining. Objekte, die von Funktionen zurückgeliefert werden, können direkt angesprochen werden: Das Ergebnis ist eine gut lesbare Funktionskette:
$app->actions(APP_CONTENT)->execute();
Method-Chaining ist nicht limitiert - wer seine Funktionen geschickt anordnet, kann fast grammatikalisch korrekte Sätze formulieren ;)


















