web-dev-qa-db-ja.com

node.jsアプリのコーディングスタイルガイド?

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

PEP 8 、Pythonの標準的なコーディングスタイルガイドに沿ったガイド(または複数のガイド)を探しています。ここでリンクする価値のないさまざまなJavaScriptガイドを見てきました(ほとんどがクライアントサイドのJavaScriptを対象としています)。興味深いnode.jsを見つけました スタイルガイド

コーディングスタイルガイドまたはコーディング規則には、以下を含める必要があります(ただし、これらに限定されません)。

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

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

129
alienhard

JSLint でチェックされたコーディング標準を確認するか、 [〜#〜] npm [〜#〜] (Isaac Shlueter's) coding標準

また、注目すべきNode.JSコーダーが使用するスタイルを見ることができます。

私は 私のものを投げる そこに適切な措置を講じます;)

編集: @ alienhard からの提案

IMOには、従うべきいくつかの黄金律があります。

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

インデント、中括弧とキーワードの間隔、およびセミコロンの配置はすべて優先事項です。

117
chriso

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

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

js-standard-style

14
mightyiam

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

10
yojimbo87

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

タブ付き:

        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のみの問題かもしれませんが、私はそうは思わないでしょう。

7

この質問をしてからしばらく経ちました...その間、この素晴らしいJavaScriptガイドを見つけました:

一貫性のある慣用的なJavaScriptの記述の原則

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

6
alienhard

Airbnbには非常に優れたJavascriptスタイルガイドがあります https://github.com/airbnb/javascript

5
Dror

コーヒースクリプトの場合、不正なインデントはコンパイルエラーを意味する

つかいます

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

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

編集:

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

2
Quang Van