node.jsアプリのコーディングスタイルガイド?[閉まっている]


130

node.jsの(またはいくつかの)コーディングスタイルガイドはありますか?そうでない場合、トップのオープンソースノードプロジェクトで使用されている新しいスタイルは何ですか?

Pythonの標準的なコーディングスタイルガイドであるPEP 8に沿ったガイド(またはいくつかのガイド)を探しています。ここでリンクする価値のないさまざまなJavaScriptガイドを見ました(ほとんどが古く、クライアント側のJavaScriptをターゲットにしています)。興味深いnode.js スタイルガイドが1つ見つかりました。

コーディングスタイルガイド、またはコーディング規約には、次のものが含まれます(ただし、これらに限定されません)。

  • コードレイアウト:インデント(2スペース、4スペース、タブなど)、改行、改行など。
  • 空白、たとえば、「function(arg)」と「function(arg)」
  • セミコロンまたはセミコロンなし、var宣言、...
  • 命名、例えば、do_this()対doThis()、var_name対varName、...
  • node.jsとJavaScriptのイディオム(==と===など)、コールバックの最初の引数はエラーオブジェクト、...
  • コメントとドキュメント
  • リントチェッカー、ユニットテストフレームワークなどの付随ツール...

このトピックは明らかに主観的ですが、成熟する過程で一般的で広く受け入れられているコーディングスタイルを確立することは、コミュニティの重要なステップだと思います。また、味だけがすべてではありません。特に、「==の代わりに===を使用する」のようなルールは、コードの品質に直接影響します。


私は、それは本当にあなたが使う「フレームワーク」(もしあれば)に依存guesたとえば、あなたがチェックアウトすることができspludo.com/source/coding-standardsしかし、他の人が若干異なるaproaches conciderかもしれない
Poelincaドリン

4
「誰もが良いスタイルガイドのセットを持っていますか」というのは主観的なものかもしれませんし、そうでないかもしれませんが、「新しいスタイルとは何か」は確かです。あなたはすでにFelixのガイドを見つけました。もちろん、私は(場合によっては強く)の側面に同意せず、他の側面にも同意します。そしてそれが問題です。非常に、非常に迅速にそれが入り込む「いいえ、スタイル私は見ては、用途タブを出現します!」「いいえ、スタイル私は見ては、用途に4つのスペースを出現します!」「いいえ、スタイル私は見ては、用途に出てくる2つのスペースを!」もちろん、人々が本当に意味しているのは、「自分が好むスタイル」であり、「自分が見ているスタイルが浮かび上がる」ということではありません。
TJクラウダー

2
@TJ Croweder 私が emergeを見ているスタイルはスペースを使用していません!
Raynos、2011年

+1素晴らしい質問。私はこれらのリンクが何年も前にあったといいのですが。
ブライアンダウニング、

主観的な質問。
Niels Abildgaard、2015

回答:


120

JSLintによってチェックされたコーディング標準を確認するか、NPM(Isaac Shlueter's)コーディング標準の作成者を調べます。

注目のNode.JSコーダーで使用されているスタイルも確認できます。

私はそこにをかなりの量で投げます;)

編集:@alienhardからの提案

IMOあなたが従うべきいくつかの黄金のルールがあります:

  • withまたは使用しないでくださいeval
  • 使い===すぎる==
  • 常にvar適切なスコープで変数を宣言します-グローバルスコープにフォールバックしないでください
  • (function(){})()サーバーサイドとブラウザーで実行されるコードをリリースする予定の場合は、アプリをクロージャーで囲みます。
  • コールバックはerr最初の引数として取る必要があり、それら自体がコールバックを引数として取る場合、それは最後でなければなりません。たとえば、callback(err, param1, param2, callback)

インデント、ブレースとキーワードの間隔、セミコロンの配置は、すべて好みの問題です。


2
答えてくれてありがとう。なぜライアンに言及しなかったのかと思っていました;)。しかし、公式のノードリポジトリウィキから、GoogleのJavaScriptスタイルガイドに従っていることがわかりました。私は前にそれを知っていませんでした...
エイリアンハード

15

町には新しい基準があります。

標準スタイルを使用します。

js-standard-style


1
なぜこれが3つの賛成票しかないのかわからない…
Luc

4
@Lucは「セミコロンなし」ルールが原因である可能性があります。「標準」スタイルと呼ばれるものの奇妙な選択のようです。
Daniel Yankowsky

セミコロンは良い考えではありません。それはいくつかの縮小を壊します。
2017

このstandardパッケージはセミコロンが好きではありません。セミコロンが好きなら準標準
yesnik

10

クライアント側指向のJavaScriptガイドから多くの優れたコーディングスタイルの実践を学ぶことができます(クライアント側とサーバー側の違いは主にライブラリ自体にあり、言語自体にはないため、それらのほとんどは一般にnode.jsにも適用されます)。たとえば、JavaScriptパターンブックでは、このトピックについて第2章の一部を取り上げています。また、Douglas CrockfordのWebサイト、およびビデオは、JavaScript固有のコーディングスタイルやベストプラクティスを採用するために必見の資料です。


3
ダグラス・クロックフォードの本「JavaScript:The Good Parts」への+1。簡潔で小さな本に大量の情報が含まれています。よく読んでいますが、私が読んだ中で最高の本の1つです。
Alex KeySmith、2011年

7

ターミナルからノードを使用する場合、ソースコードでインデントにスペースを使用すると便利です。そうしないと、「ここのエラー」キャレットは整列しません。

タブあり:

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

スペースあり:

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

これはMacのみの問題かもしれませんが、私はそうは思わないでしょう。


OPはスタイルガイドを求めました。特定のヒントではありません。
mightyiam

@mightyiam確かに、インデントルールはほとんどすべてのスタイルガイドの一部です。多分私のポイントは、OPが他の人がリンクするいくつかのスタイルガイドを評価するのに役立つか、または彼が彼自身のスタイルガイドを開発するのを助けることができます。
Daniel



2

Coffee-Scriptの場合、不正なインデントはコンパイルエラーを意味します

使用する

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

人気のコーヒープロジェクトはzombiebrunchこの設定をインデントに使用しています。

編集:

実際には、これを使用してください!https://github.com/paulmillr/code-style-guides(への主な貢献者の1人brunch

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.