Sie befinden sich hier: start » de » coding_style

Programmierstil

Programmieren Sie auf eine Art, die anderen hilft Ihren Code zu verstehen. Jeder Narr kann Code schreiben, den ein Computer verstehen kann. Gute Programmierer schreiben Code, den Menschen verstehen können.(Martin Fowler)

Seit CMSimple_XH 1.6 wurden die Pear Coding Standards für das Kernsystem angenommen. Schreiber von Erweiterungen können in Erwägung ziehen, diese Coding Standards ebenfalls anzunehmen, aber natürlich ist das nicht verpflichtend.

Um keinen „Glaubenskrieg“ bzgl. des richtigen Programmierstils zu entfachen, fassen Sie diese Liste nicht als etwas wie die Zehn Gebote auf, sondern nur als ein paar Vorschläge wie sie die Lesbarkeit von Plugins, Addons und Codeanpassungen erhöhen können.

  1. Verwenden Sie immer <?php ?>, niemals die Kurzfassungen <? ?> oder <?= ?>.
  2. Wählen Sie verständliche Namen für Funktionen und Variablen und vermeiden Sie soweit möglich neue global Variablen zu verwenden. Und stellen Sie Ihren Funktionen z.B. den Namen des Plugins voran (da Namespaces erst seit PHP 5.3 verfügbar sind).
  3. Rücken Sie Ihren Code mit 4 Leerzeichen oder 4 Zeichen langen Tabulatoren auf eine logische Weise ein.
  4. Es wird empfohlen geschweifte Klammern zu verwenden, selbst wenn diese nicht erforderlich sind.
    // schlecht (das betrifft ebenfalls Punkt #2):
    if ($t == '')e('undefined', 'file', $fl);
     
    // besser:
    if ($temp == ''){
       error_message('undefined', 'file', $file);
    }
    // oder:
    if ($temp == '')
    {
       error_message('undefined', 'file', $file);
    }
  5. Verwenden Sie einfache Anführungszeichen, zumindest für den Fall, dass in der Zeichenkette nichts zu evaluieren ist.
    // schlecht:
    echo "<a href=\"http://www.cmsimple-xh.org\" title=\"CMSimple_XH\">CMSimple_XH</a>";
    // besser:
    echo '<a href="http://www.cmsimple-xh.org" title="CMSimple_XH">CMSimple_XH</a>';
  6. Trennen Sie Parameter und Operatoren mit Leerzeichen
    // schlecht:
    function some_function($foo,$bar){
        if($foo==bar){
             return $foo+$bar;
        }
    }
    // besser:
    function some_function($foo, $bar){
         if($foo == bar){
             return $foo + $bar;
        }
    }
    // oder:
    function some_function($foo, $bar)
    {
        if($foo == bar)
        {
            return $foo + $bar;
        }
    }

    Im Falle von vielen Parameter oder Bedingungsklauseln verwenden Sie Zeilenumbrüche und Einrückungen.

    // schlecht:
    if(isset($foo) && $foo > 1 && $foo < 45 && $bar == true){
        //...
    }
    // besser:
    if(    isset($foo)
        && $foo > 1
        && $foo < 45
        && $bar == true
    ) {
        //...
    } 
  7. Verschachteln Sie nicht zu tief, und schreiben Sie kurze Code Zeilen (max. 80 Zeichen werden üblicherweise empfohlen).
    // schlecht:
    $foo = explode('§', preg_replace("/(<h[1-".$cf['menu']['levels']."][^>]*>)/i", \\1", str_replace('§', '&#167;', rf($pth['file']['content']))));
     
    // besser: 
    $foo = rf($pth['file']['content']);
    $foo = str_replace('§', '&#167;' $foo);
    $foo = preg_replace('/(<h[1-'
         . $cf['menu']['levels']
         . '][^>]*>)/i', '§\\1', $foo);
    $foo = explode('§', $foo);   

    Wenn Sie kurze Zeilen schreiben, platzieren Sie die Verkettungs-Punkte in mehreren Zeilen genau unter das „=„

    // schlecht:
    $foo = $foo1.$foo2.$foo3.(my_super_cool_calculation).etc;
     
    // besser: 
    $foo = $foo1
         . $foo2
         . $foo3
         . (my_super_cool_calculation)
         . etc;
  8. Funktionsnamen sind besser zu lang als zu kurz. Eine beschreibende Phrase als Funktionsname erleichtert die Verständlichkeit des Codes. Beginnen Sie mit einem Kleinbuchstaben und trennen Sie Wörter durch camelCase oder Unterstriche.
  9. Klassendefinitionen sollten mit einem Großbuchstaben beginnen und einen Zeilenumbruch vor der öffnenden Klammer haben.
    class Toy
    {
       //...
    }
  10. Rücken Sie Zuordnungen in Arrays ein.
    // schlecht:
    array('drink' => 'coffee', 'do_not_watch'=>'tv','eat'=>'bread');
     
    // besser:
    array(
        'drink'        => 'coffee',
        'do_not_watch' => 'tv',
        'eat'          => 'bread',
    );
 
Sie befinden sich hier: start » de » coding_style
Falls nicht anders bezeichnet, ist der Inhalt dieses Wikis unter der folgenden Lizenz veröffentlicht: GNU Free Documentation License 1.3
Valid XHTML 1.0 Valid CSS Driven by DokuWiki