Die Dunkle Seite Meine Abk Hybris? Mein Werdegang Die Administration [tm] Macht Blah. datd Coding Standard Links Impressum

Vorwort: Dieser Coding Standard ist natürlich kein echter Coding Standard. Er beschreibt vielmehr den Status Quo des bisherigen Codes des datd-Bot's und dient als Anhalt für Entwickler künftiger Erweiterungen des Bots. Wie die Versionsnummer schon vermuten lässt, ist dies nur eine Alpha-Version. Änderungen sind zwar unwahrscheinlich, aber nicht ausgeschlossen.
Anders 'gestylter' Code wird nicht grundsätzlich abgelehnt, jedoch sollten zumindest die Kommentare diesem Standard entsprechen, um Kompatibilität zur Hilfe-Funktion des Bots sicherzustellen.

Der datd Coding Standard v0.1

  1. Einrückungen
  2. Kontrollstrukturen
  3. Funktionsaufrufe
  4. Klassen- und Funktionsdefinitionen
  5. Kommentare
  6. Variablen
  7. Sonstiges

1. Einrückungen

Einrückungen sind 2 Leerzeichen tief. Tabulatoren sind nicht zu nutzen.

2. Kontrollstrukturen

Dies betrifft if, for, while, switch, etc. Beispiele für if und switch folgen am Ende des Abschnittes.
Kontrollstrukturen sollten ein Leerzeichen zwischen dem 'Kontrollwort' und der öffnenden (runden) Klammer haben, um sie von Funktionsaufrufen abzugrenzen. Geschweifte Klammern sind auch dann zu nutzen, wo sie technisch unnötig sind.
Die öffnende geschweifte Klammer steht durch ein Leerzeichen von der schliessenden runden Klammer getrennt in der selben Zeile wie das 'Kontrollwort'.
Nach der schliessenden geschweiften Klammer folgt ein Absatz (Leerzeile). Bei verschachtelten Strukturen gilt dies nur für die äußerste Struktur.
Schliessende geschweifte Klammern haben die selbe Einrücktiefe wie das dazugehörige Kontrollwort.
Beispiele:

<?php
if ((bedingung1) || (bedingung2)) {
  aktion1;
} elseif ((bedingung3) && (bedingung4)) {
  aktion2;
} else {
  defaultaktion;
}

?>

<?php
switch (bedingung) {
case 1:
  aktion1;
  break;
case 2:
  aktion2;
  break;
default:
  defaultaktion;
  break;
}

?>
Zur Übersicht

3. Funktionsaufrufe

Funktionen werden ohne Leerzeichen zwischen Funktionsname, öffnender Klammer und erstem Parameter aufgerufen. Zwischen Kommata und folgenden Parametern ist jeweils ein Leerzeichen, zwischen letztem Parameter, schliessender Klammer und Semikolon befindet sich wiederrum kein Leerzeichen.
Beispiel:

<?php
$foo = bar($orden, $dunkle, $seite);
?>
Zur Übersicht

4. Klassen- und Funktionsdefinitionen

Klassen- und Funktionsdefinitionen folgen sinngemäß den gleichen Regeln wie Kontrollstrukturen und Funktionsaufrufe.
Beispiele:

<?php
class orden {
  function dunkle($seite) {
    return $tm;
  }

}

?>

<?php
function bar($orden, $dunkle, $seite) {
  if (bedingung) {
    aktion;
  }

  return $tm;
}

?>
Zur Übersicht

5. Kommentare

Kommentare zu Klassen, Methoden und Funktionen sind gemäß der PHPDoc (FN: http://www.phpdoc.de/ #) Konvention zu erstellen. Klassen-Kommentare sind grundsätzlich nicht eingerückt und haben eine maximale Zeilenlänge von 72 Zeichen, inklusive "/**" bzw "* ". Sie dienen als Help-Block, der über das help-Plugin ausgelesen und gepostet wird.
Informationen über die interne Funktionsweise der Klasse sind unerwünscht, solange sie für den Enduser nicht von Bedeutung sind.
Alle anderen (PHPDoc-)Kommentare haben die gleiche Einrücktiefe, wie der sie umgebende Code.
Zusätzliche Kommentare sind erwünscht. Hierfür sind Kommentare im C++ Stil (//) zu nutzen. Kommentare im Perl-Stil (#) sind unerwünscht.
Kommentar stehen immer über dem Code, den sie beschreiben.
Logische zusammenhängede Codeblöcke sollten kommentiert werden, andernfalls sind sie durch //****** von einander zu trennen.

Zur Übersicht

6. Variablen

Variablennamen sollten bei temporären Variablen möglichst kurz sein (1-4 Zeichen), bei anderen Variablen möglichst beschreibend. Nach Möglichkeit sollten keine Variablennamen verwendet werden, die in anderen Plugins schon gebraucht werden. Bei der Zuweisung von Variablen sind links und rechts vom Gleichheitszeichen je ein Leerzeichen.
Bei der Verwendung innerhalb von Strings sind Variablen immer mit Punkten einzubinden, zwischen String, Punkten und Variable ist jeweils ein Leerzeichen zu setzen.
Beispiele:

<?php
echo("bla " . $laber . " suelz");
?>

<?php
$tmp          = foo($bar);
$dunkle_seite = "tm";
?>
Zur Übersicht

7. Sonstiges

Der Code ist zu sortieren: zuerst die Definition der Konstanten, darauf folgend die Klassendefinitionen, dann Funktionsdeklarationen und zum Schluss der restliche Code.