Coding Style Guide für node.js Apps? [geschlossen]

130

Gibt es einen (oder mehrere) Codierungsstil-Leitfaden für node.js? Wenn nicht, welche neuen Stile werden von den Top-Open-Source-Knotenprojekten verwendet?

Ich suche einen Leitfaden (oder mehrere Anleitungen) nach dem Vorbild von PEP 8 , dem kanonischen Coding Style Guide für Python. Ich habe verschiedene JavaScript-Anleitungen gesehen, die es nicht wert sind, hier verlinkt zu werden (meistens alt und auf clientseitiges JavaScript ausgerichtet). Ich fand eine interessante node.js Style Guide .

Ein Coding Style Guide oder Codierungskonventionen sollte Folgendes enthalten (ist aber nicht darauf beschränkt):

  • Codelayout: Einrückung (2 Leerzeichen, 4 Leerzeichen, Tabulatoren, ...), Zeilenumbrüche, Zeilenumbrüche usw.
  • Leerzeichen, z. B. "Funktion (arg)" vs. "Funktion (arg)"
  • Semikolon oder kein Semikolon, Var-Deklaration, ...
  • Benennen, z. B. do_this () vs. doThis (), var_name vs. varName, ...
  • node.js und JavaScript-Redewendungen, z. B. == vs. ===, das erste Argument des Rückrufs ist ein Fehlerobjekt, ...
  • Kommentare und Dokumentation
  • Begleitende Tools wie Flusenprüfer, Unit-Test-Framework, ...

Dieses Thema ist natürlich sehr subjektiv, aber ich denke, es ist ein wichtiger Schritt einer Community, einen gemeinsamen und allgemein akzeptierten Codierungsstil zu etablieren, um reifer zu werden. Es geht auch nicht nur um Geschmack. Insbesondere Regeln wie "use === anstelle von ==" haben direkten Einfluss auf die Codequalität.

alienhard
quelle
Ich denke, es hängt wirklich von dem "Framework" ab, das Sie verwenden (falls vorhanden). Sie können beispielsweise spludo.com/source/coding-standards überprüfen, andere könnten jedoch etwas andere Ansätze in
Betracht
4
"Hat jemand einen guten Satz von Styleguides" mag subjektiv sein oder auch nicht, aber "Was sind die aufkommenden Styles" ist es mit Sicherheit. Sie haben bereits Felix 'Leitfaden gefunden, mit dem ich natürlich nicht einverstanden bin (in einigen Fällen stark) und mit anderen Aspekten von einverstanden bin. Und das ist das Problem. Sehr, sehr schnell geht es um "Nein, der Stil, den ich sehe , verwendet Tabs!" "Nein, der Stil, den ich sehe , verwendet vier Leerzeichen!" "Nein, der Stil, den ich sehe , verwendet zwei Leerzeichen!" Wenn die Leute natürlich wirklich "den Stil meinen, den ich bevorzuge", nicht "den Stil, den ich sehe".
TJ Crowder
2
@TJ Croweder Der Stil, den ich sehe , verwendet keine Leerzeichen!
Raynos
+1 Tolle Frage. Ich wünschte, ich hätte diese Links vor Ewigkeiten.
Bryan Downing
Subjektive Frage.
Niels Abildgaard

Antworten:

120

Ich würde die von JSLint überprüften Codierungsstandards überprüfen oder mir den Autor der NPM - Codierungsstandards (Isaac Shlueter) ansehen .

Sie können sich auch den Stil ansehen, der von namhaften Node.JS-Codierern verwendet wird:

Ich werfe meine für ein gutes Maß hinein;)

Edit: Vorschläge von @alienhard

IMO gibt es ein paar goldene Regeln, denen Sie folgen sollten:

  • Niemals benutzen withodereval
  • Verwenden Sie ===über==
  • Deklarieren Sie Ihre Variablen immer varim entsprechenden Bereich - greifen Sie nicht auf den globalen Bereich zurück
  • Schließen (function(){})()Sie Ihre App in einen Abschluss ein, wenn Sie Code veröffentlichen möchten, der sowohl serverseitig als auch im Browser ausgeführt wird
  • Rückrufe sollten errals erstes Argument verwendet werden, und wenn sie selbst einen Rückruf als Argument verwenden, sollte dies das letzte sein, zcallback(err, param1, param2, callback)

Einrückung, Abstand zwischen geschweiften Klammern und Schlüsselwörtern sowie Semikolonplatzierung sind bevorzugt.

Chriso
quelle
2
Danke für die Antwort. Ich habe mich gefragt, warum du Ryan nicht erwähnt hast;). Aus dem offiziellen Node-Repo-Wiki habe ich jedoch herausgefunden, dass sie dem JavaScript- Styleguide von Google folgen . Ich wusste das vorher nicht ...
Alienhard
15

Es gibt einen neuen Standard in der Stadt.

Verwenden Sie den Standardstil .

js-standard-style

mächtig
quelle
1
Ich habe keine Ahnung, warum dies nur 3 positive Stimmen hat ...
Luc
4
@ Luc vielleicht wegen der Regel "Keine Semikolons". Scheint eine seltsame Wahl für etwas zu sein, das als "Standard" -Stil bezeichnet wird.
Daniel Yankowsky
Kein Semikolon ist keine gute Idee. Es wird einige Minimierungen brechen.
Denov
Dieses standardPaket mag keine Semikolons. Wenn Sie Semikolons mögen, gibt es Semistandard
Yesnik
10

In clientseitig orientierten JavaScript-Handbüchern können Sie viele gute Methoden für den Codierungsstil lernen (die meisten davon gelten im Allgemeinen auch für node.js, da der Unterschied zwischen Client- und Serverseite hauptsächlich in Bibliotheken und nicht in der Sprache selbst liegt). Das JavaScript- Musterbuch widmet diesem Thema beispielsweise einige Teile des Kapitels 2 . Auch die Website , das Buch und die Videos von Douglas Crockford sind ein Muss, um JavaScript-spezifische Codierungsstile und Best Practices zu übernehmen, würde ich sagen.

yojimbo87
quelle
3
+1 zu Douglas Crockfords Buch "JavaScript: The Good Parts". Es enthält verdammt viele Informationen in einem prägnanten / kleinen Buch - eine schwere Lektüre, aber eines der besten Bücher, die ich gelesen habe.
Alex KeySmith
7

Wenn Sie einen Knoten vom Terminal aus verwenden, ist es für Ihren Quellcode hilfreich, Leerzeichen zum Einrücken zu verwenden. Andernfalls wird das Caret "Fehler hier" nicht angezeigt.

Mit Registerkarten:

        var preps = files.map(function(f) { 
            ^
TypeError: Cannot call method 'map' of null

Mit Leerzeichen:

        var preps = files.map(function(f) { 
                          ^
TypeError: Cannot call method 'map' of null

Dies könnte nur ein Mac-Problem sein, aber ich würde es nicht vermuten.

Daniel Yankowsky
quelle
OP bat um einen Styleguide. Kein spezifischer Tipp.
Mightyiam
@mightyiam Stimmt, aber Einrückungsregeln sind Teil fast aller Styleguides. Vielleicht kann mein Punkt OP dabei helfen, einige der Styleguides zu bewerten, die andere verknüpfen, oder ihm helfen, seinen eigenen Styleguide zu entwickeln.
Daniel Yankowsky
6

Es ist eine Weile her, seit ich diese Frage gestellt habe ... und in der Zwischenzeit habe ich diesen ausgezeichneten JavaScript-Leitfaden gefunden:

Prinzipien des Schreibens Konsistentes, idiomatisches JavaScript

https://github.com/rwldrn/idiomatic.js/

alienhard
quelle
2

Für Coffee-Script bedeutet ein schlechter Einzug Kompilierungsfehler

verwenden

:set tabstop=2
:set shiftwidth=2
:set expandtab

beliebte Kaffeeprojekte zombie, brunchverwendet diese Einrichtung für Vertiefungen.

Bearbeiten:

Verwenden Sie dies einfach! https://github.com/paulmillr/code-style-guides (einer der Hauptverantwortlichen für brunch)

Quang Van
quelle