Raketenqualitätskontrolle: Zum SelfHTML-Wiki

Beitrag lesen

Ja „sixt“. Namespaces.

Gut, dass Du das zeigst, denn das fehlte bei meinen Vorschlägen ganz: (Ebenso wie in der von Juius genannten Konvention in Punkt 3 durch die Worte "Code written for PHP 5.3 and after MUST use formal namespaces." vorgesehen:) Die Verwendung von Namespaces mindestens empfehlen, damit beim Copy & Paste keine „Katastrophen“ auftreten. Für mein eigenes Zeug steht das auf der ToDo-Liste.

Apropo „ToDo“: (Obwohl das ja hoffentlich keine Konstante ist...)

Bei Kleinschreibung riskiert man, dass benutzerdefinierten Konstanten mit den globalen Funktionen kollidieren. Dadurch gewinnt man also nichts.

Genau deswegen habe ich mich darauf verlegt, bei eigenen Konstanten in meinem Zeug den ersten Buchstabe groß zu schreiben und statt dem Unterstrich als Wort-Verbinder (oder, beim Lesen: Wort-Trenner) CamelCase zu verwenden. Also 'SelfTest' statt 'SELF_TEST'. Das kann - in meinem Schema - nur mit eigenen Klassennamen kollidieren, die aber ganz anders verwendet werden als Konstanten.

Den Punkt 2.3. „Side Effects“ der PSR-1

A file SHOULD declare new symbols (classes, functions, constants, etc.) and cause no other side effects, or it SHOULD execute logic with side effects, but SHOULD NOT do both.

... würde ich im Wiki bei kleineren Beispielskripten nicht empfehlen wollen, weil das die Funktion oder Klasse und deren ad-hoc-Verwendung in den zugehörigen Demonstrationen „zerreisst“. Wir wissen zwar inzwischen aus den Fragen im Forum, dass manche Anfänger sich „aufregend große und schwierige“ Projekte aufladen. Aber dennoch finde ich, dass eine Aufteilung der kleineren Demo-Skripte meist nicht sinnvoll ist. (außer es geht z.b. genau darum, die Aufteilung zu zeigen) Bliebe man konsequent müsste man eigentlich auch jeden HTML-Part ein Template-File verlegen und da wäre im Endeffekt wohl zu viel auf einmal zu erklären - was den „Side Effect“ mit sich bringt, dass die Beginner bezüglich des Lernens „aussteigen“ und sich alsdann ihr Zeug nur noch zusammenkopieren. Was wir ja hier im Forum auch sehr genau sehen.

Apropo „Beginner“:

Wie wärs mit Festlegung und Anzeige eines Schwierigkeitsgrades?

(Habe das noch beim Schreiben selbst verworfen, weil sowas nach gemachten Erfahrungen mit Typen wie dem gewissen RaketenMeinerEinerSelbst (wohl, häufig) ignoriert wird oder sogar dazu führt, dass „Anfängerkram“ absichtlich übergangen wird.)