Alexander Foken: /php - Einrückungen bei elseif oder else ?

Beitrag lesen

Moin Moin !

Also mal wieder die Formatierungsdiskussion.

* konsequent
* nachvollziehbar
* lesbar
* einheitlich

Es gibt im Web einige Regeln, wie man Code formatieren sollte. Z.B. in den Linux-Sources die Datei Documentation/CodingStyle (http://lxr.linux.no/source/Documentation/CodingStyle) oder perldoc perlstyle (http://www.perldoc.com/perl5.8.0/pod/perlstyle.html).

Ob man nun Javascript, Java, C, C++, Perl, PHP, C#, J# oder sonst ein C-Derivat zum Coden benutzt, ist dank beinahe einheitlicher Syntax recht egal. Mit etwas mehr Mühe kann man den Coding-Style auch in Pascal, Fortran und anderen Sprachen durchziehen.

Bei mir sieht if-then-else so aus:

if (...) {
 ...
 ...
 ...
} else {
 ...
 ...
 ...
}

Svens Argument, die Klammern untereinander zu setzen, ist zwar nicht von der Hand zu weisen. Aber diese Extra-Zeilen blähen mir den Code zu sehr auf.

Und ich nehme zum Einrücken ausschließlich Tabulatoren, eingestellt auf vier Zeichen. Wer Code "enger" haben möchte, stellt auf zwei oder drei Zeichen um, wer es luftiger haben möchte, nimmt 8. Wer einen Editor mit fest programmierten Tabulatoren benutzt, muß mit der "luftigen" Einrückung leben.

Richtig fürchterlich finde ich den Stil von einigen größeren Projekten (war es Apache?), eine Tab-Breite von 8 und eine Einrückung von vier vorzuschreiben, und dann gemischt mit Tab und Space einzurücken. Das mag zwar einige Bytes sparen, aber es stört fürchterlich, wenn der Editor nicht auf 8 Zeichen lange Tabs eingestellt ist.

Ein eigentlich sauber eingerückter Text sieht dann mit 4er-Tabs nämlich alles andere als sauber aus:

function(...)
{
    for (...) {             /* 4 spaces */
    ...                     /* 1 TAB */
    if (...) {              /* 1 TAB */
        ....                /* 1 TAB + 4 spaces */
        for (...) {
        if (...) {          /* 2 TABs */
            ....            /* 2 TABs + 4 spaces */
        }
        }
    }
    }
}

An diesem Beispiel sieht man auch: Die öffnende Klammer eines Blocks steht bei mir immer am Ende der einleitenden Zeile, außer bei Funktionsdefinitionen.

Das ist mein Coding-Stil, ich ziehe ihn konsequent durch alle Projekte und alle wesentlichen Sprachen, und damit komme ich gut zurecht. Da ich nicht in einer Coding-Firma arbeite, sondern im wesentlichen alleine Code schreibe, kann ich den Stil festlegen.

Alexander

--
Nein, ich beantworte keine Fragen per eMail. Dafür ist das Forum da.
Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so!"