20 Stimmen

Kodierungsstandards und Zeilenlänge

Jeder Kodierungsstandard, den ich kenne, hat eine empfohlene oder absolute Grenze für die Anzahl der Zeichen in einer Zeile. Es gibt verschiedene Möglichkeiten, diese Begrenzung einzuhalten, aber ich habe noch nie eine spezifische Anleitung dazu gesehen.

Wenn möglich, sollten Sie natürlich keine übermäßig langen Zeilen schreiben.

Was aber, wenn das nicht praktikabel ist? Wie sollte man mit langen Schlangen umgehen?

Hier sind ein paar Beispiele

if ($Stmt = $Mysqli->prepare("SELECT color, pattern, size,
                              manufacturer, mfgSku, storeLocation,
                              aisle, status
                              FROM tblItems WHERE ourSku = ?")) {

o

$flavors = array ('chocolate', 'strawberry', 'vanilla', 'cookie dough', 
                  'chocolate chip', 'mint chocolate chip', 'rocky road',
                  'peach', 'fudge brownie', 'coffee', 'mocha chip');

o

$Stmt->bind_result( $this->_firstName,
                    $this->_lastName,
                    $this->_BillToAddress->address1,
                    $this->_BillToAddress->address2,
                    $this->_BillToAddress->city,
                    $this->_BillToAddress->state,
                    $this->_BillToAddress->zip,
                    $this->_BillToAddress->country,
                    $this->_email,
                    $this->_status,
                    $this->_primaryPhone,
                    $this->_mobilePhone );

In jedem dieser Beispiele ist die Einrückung von langem Code unterschiedlich. Gibt es eine bessere oder "Standard"-Methode für dieses Vorgehen? Sollten zusätzliche Zeilen immer auf dieselbe Weise eingerückt werden? Oder ist das in Ordnung?

3voto

Oliver N. Punkte 2498

Ich glaube nicht, dass man absichtlich lange Zeilen haben sollte, aber auf die Gefahr hin, viele zu beleidigen, schlage ich vor, dass die Zeilenlänge wirklich nicht mehr so wichtig ist.

Vim und emacs können sehr gut mit langen Zeilen umgehen und sind auf fast allen Unix-Systemen installiert. Unter Windows werden Sie sich fast immer in einem GUI-Texteditor befinden. Ich denke, Ihr $Stmt->bind_result Stil ist am einfachsten zu lesen, aber wenn Sie nur eine Reihe von meist statischen Informationen in einer Anweisung laden müssen, habe ich kein Problem mit einer 1000 Zeichen langen Zeile.

1voto

Alex McBride Punkte 6761

Das ist wirklich ziemlich subjektiv, ähnlich wie die Position von Klammern und andere Codierungsstile. Die Hauptsache ist nicht so sehr, welchen Stil Sie wählen, sondern dass Sie einen Stil wählen und ihn während des gesamten Projekts beibehalten.

Für mich persönlich, der ich aus einem Python-Hintergrund komme, verwende ich eine Zeilenlänge von 79 und eine

$flavors = array ('chocolate', 'strawberry', 'vanilla', 'cookie dough', 
                  'chocolate chip', 'mint chocolate chip', 'rocky road',
                  'peach', 'fudge brownie', 'coffee', 'mocha chip');

Stil.

Aber wie gesagt, meiner Meinung nach ist es wichtiger, einen Stil zu haben, als sich Gedanken darüber zu machen, welchen.

1voto

Jon Ericson Punkte 20031

Es hat sich gezeigt, dass Prosazeilen, die länger als etwa 80 Zeilen sind, schwerer zu lesen sind. (Siehe Seite 13 der LaTeX-Memoir-Klasse Dokumentation .) Code vollständig (Abschnitt 18.5, Seite 425 meiner Ausgabe) verweist ebenfalls auf die 80-Zeichen-Grenze mit diesem Vorbehalt:

Mit größeren Bildschirmen, schmalen Schriftarten, Laserdruckern und dem Querformat sind die Argumente für die 80-Zeichen-Grenze nicht mehr so überzeugend wie früher. Eine einzelne Zeile mit 90 Zeichen ist in der Regel besser lesbar als eine, die in zwei Teile geteilt wurde, nur um die 80er-Spalte nicht zu überschreiten. Mit der modernen Technologie ist es wahrscheinlich in Ordnung, 80 Spalten gelegentlich zu überschreiten.

Ich würde das SQL in Ihrem ersten Beispiel getrennt vom Rest des Codes einrücken:

if ($Stmt = $Mysqli->prepare(
            "SELECT color, pattern, size,
                    manufacturer, mfgSku, storeLocation,
                    aisle, status
             FROM tblItems 
             WHERE ourSku = ?")) {

Das zweite Beispiel könnte besser sein, wenn es in eine Konfigurationsdatei oder Tabelle geladen würde.

Der dritte ist gut, aber man könnte ihn noch etwas straffen:

$Stmt->bind_result( 
   $this->_firstName,
   $this->_lastName,
   $this->_BillToAddress->address1,
   $this->_BillToAddress->address2,
   $this->_BillToAddress->city,
   $this->_BillToAddress->state,
   $this->_BillToAddress->zip,
   $this->_BillToAddress->country,
   $this->_email,
   $this->_status,
   $this->_primaryPhone,
   $this->_mobilePhone 
);

1voto

Michael Kristofik Punkte 32950

Wenn Sie mehr als zwei Artikel einpacken, bevorzuge ich eine neue Zeile für jeden Artikel wie in Ihrem dritten Beispiel. Es ist für automatisierte Versionskontrollprogramme einfacher, Änderungen von anderen Personen zusammenzuführen, wenn es nur ein Element pro Zeile gibt.

1voto

Pat Punkte 5691

Halten Sie sich an den Standard, den der umgebende Code verwendet. Schaffen Sie nicht Ihren eigenen "Standard", egal wie viel "besser" er ist.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X