PHP Zend Framework Codierungsstandard, welcher ist der lesbarere Ansatz?

7

Dies ist eine subjektive Frage, ich brauche Ihre Gefühle und Gedanken über Kodierungsstandards und Formatierungspraktiken.

Der PHP-Zend-Codierungsstandard erfordert das Schreiben mehrzeiliger Funktionsaufrufe wie folgt:

%Vor%

Ich denke, der folgende Ansatz ist besser lesbar:

%Vor%

Da es nur eine Zeile auf der linken Seite gibt, zeigt dies an, dass dies nur eine Anweisung ist und die Argumente näher am Methodennamen sind.

Welche bevorzugen SIE ?

    
erenon 04.03.2010, 20:45
quelle

7 Antworten

14

Der zweite Ansatz hinterlässt ein zusätzliches Problem: Linienlänge. Der Zend Coding Standard legt nahe, dass "die maximale Länge einer beliebigen PHP Codezeile 120 Zeichen beträgt."

Das heißt, wenn Sie gute (lange, beschreibende) Variablennamen haben wollen und Sie eine für den Rückgabewert, das Objekt, eine gute benannte Funktion und einen langen Parameter haben, treffen Sie viel eher die 120 Zeichen Grenze.

Zusätzlich dazu und abhängig von Ihrem Standard kann die maximale Länge nur 80 Zeichen oder etwas dazwischen betragen.

Außerdem mag ich das erste besser, wenn es wiederholt benutzt wird

%Vor%

Wie Pekka sagte, weniger Augen springen.

    
edorian 04.03.2010, 21:05
quelle
10

Ich mag die erste Annäherung besser. Letzteres erfordert mehr Tipparbeit, und ist mehr anstrengend auf die Augen IMO. Ich denke, dass das Auge - zumindest für den "westlichen", von links nach rechts lesenden Teil der Menschheit - dazu tendiert, zum Anfang der nächsten Zeile zu springen, wenn man am Ende des aktuellen ankommt, und es gibt zu viel Leerraum im zweiten Beispiel rüber springen. Es ist möglicherweise nicht semantisch zu 100% korrekt, bietet aber einen guten Lesefluss.

    
Pekka 웃 04.03.2010 20:48
quelle
3

Ich mag den Standard von PEAR und befürwortet das erste Ihrer Beispiele

%Vor%

aber ich hätte das vielleicht für so eine kurze Reihe von Parametern getan:

%Vor%

EDIT: oh! und für das siderische Beispiel:

%Vor%     
jah 05.03.2010 00:07
quelle
2

Von den beiden, die du zur Verfügung gestellt hast, bevorzuge ich die erste.

Wenn ein Kodierungsstandard vorhanden ist, werde ich dem folgen. Bei meiner Arbeit gibt es das nicht, und ich bevorzuge Folgendes:

%Vor%

Für mich ist es einfacher, sofort zu sehen, dass eine Variablenzuweisung ausgeführt wird (wegen der Art, wie Parameter und schließende Klammern eingerückt sind. Beim Zend-Standard muss man tatsächlich nach dem Gleichheitszeichen suchen, um zu sehen, dass es ein ist Zuweisung, sonst könnte es mit einem einfachen mehrzeiligen Funktionsaufruf verwechselt werden.

Noch ein Kommentar ... meine Funktionsaufrufe werden nur mehrzeilig, wenn sie 120 Zeichen überschreiten, mehr als 120 Zeichen sind in meiner IDE bei einer Auflösung von 1600x1200 nicht sichtbar, wenn der Arbeitsbereich-Browser und die Code-Navigator-Fenster geöffnet sind.

Diese Codezeile besteht nur aus 74 Zeichen, also hätte ich das getan:

%Vor%     
Michael Moussa 04.03.2010 21:38
quelle
1

Weder? Option A ist möglicherweise verwirrend, da ein einzelner Einzug für Codeblöcke verwendet wird. Option B ist problematisch mit langen Argumentnamen und / oder tief eingerücktem Code.

Ich bevorzuge Double-Indent für fortgesetzte Argumentlisten.

Beispiel, per Erenons Anfrage:

%Vor%     
sidereal 04.03.2010 20:49
quelle
1

Ich gehe normalerweise mit der Ersten, aber mit der schließenden Klammer auf der gleichen Linie oder mindestens dem gleichen Einzug wie oben.

%Vor%

Dies scheint bei der Verschachtelung eine gewisse Verwirrung zu vermeiden.

Allerdings: mein Eindringling in vim begann das selbe Level-wie-paren (2, oben) und ich mag es. Ich brich damit auf langen Zeilen, die Hilfe benötigen, aber im Allgemeinen, ich denke, es führt zu lesbarem Code, wenn Sie in erster Linie nach Methodennamen anstelle von Parametern suchen.

Übrigens, diese Art von Einrückung für verschachtelte boolesche Anweisungen, und das funktioniert auch gut.

Ich gruppiere auch Argumente in einer Zeile, wenn sie nicht zu lang sind und sie sinnvollerweise gruppieren.

    
Justin 05.03.2010 20:57
quelle
1

Ich bevorzuge das erste aus zwei Gründen:

  1. Es erlaubt Ihnen, die Tabulator-Taste zum Einrücken (oder Hotkeys für Einrücken / Einrücken) zu verwenden, ohne sich darum kümmern zu müssen, zusätzliche Leerzeichen hinzuzufügen, um Ihre Argumente in eine Reihe zu bringen.
  2. Noch wichtiger ist, dass Sie den Argumenteinzug nicht ändern müssen, wenn sich die Länge des Namens Ihrer Variablen, Ihres Objekts oder Ihrer Methode in der ersten Zeile ändert.
Ed Lucas 05.03.2010 21:41
quelle