2011-03-31 33 views
119

是否有一個(或幾個)node.js的編碼風格指南?如果不是,頂級開源節點項目使用的新興風格是什麼?node.js應用程序的編碼風格指南?

我正在尋找一個指南(或幾個指南)沿線PEP 8,Python的規範編碼風格指南。我已經看到各種JavaScript指南在這裏不值得鏈接(大多數是舊的,針對客戶端JavaScript)。我發現了一個有趣的節點.js style guide

的編碼樣式指南,或編碼約定,應包括(但不限於):

  • 代碼佈局:縮進(2位,4個空格,製表符,...),換行符線休息等
  • 空白,例如, 「功能(ARG)」 與 「功能(ARG)」
  • 分號或沒有分號,VAR聲明,...
  • 命名,例如,do_this()VS 。doThis(),var_name與varName,...
  • node.js和JavaS CRIPT成語,例如,==與===,回調的第一個參數是一個錯誤的對象,...
  • 註釋和文檔
  • 輔助工具,如絨毛檢查,單元測試框架,...

這個話題顯然是非常主觀的,但我認爲這是社區在成熟過程中建立一種共同的,被廣泛接受的編碼風格的重要一步。而且,這不僅僅是品味。特別是像「使用===而不是==」這樣的規則會直接影響代碼質量。

+0

我客串它真的取決於「框架」您使用(如果有的話),例如,你可以檢查出http://spludo.com/source/coding-standards/但是別人可能會略有海外商品會有不同的說法 – 2011-03-31 06:48:54

+4

「有人有一套很好的風格指南」可能會也可能不會是主觀的,但「新興風格是什麼」當然是。你已經找到了費利克斯的指導,當然我不同意(有些情況下強烈)的方面並且同意其他方面的指導。這就是問題所在。很快,它進入「不,我看到**的風格使用標籤!」 「不,我看到出現的風格使用了四個空格!」 「不,我***看到的風格使用*兩個*空格!」當然,當人們的真正意思是「我喜歡的風格」時,而不是「我看到的風格浮現」。 – 2011-03-31 07:02:50

+2

@ T.J。 Croweder風格_I'_看到emerge不使用空格! – Raynos 2011-03-31 23:00:30

回答

110

我會檢查由JSLint檢查的編碼標準或看看作者NPM(Isaac Shlueter的)coding standards

您還可以查看着名節點使用的樣式。JS編碼:

我會在那裏爲好措施throw mine;)

編輯:建議從@alienhard

IMO有幾個黃金規則應遵循:

  • 切忌在使用witheval
  • 使用===超過==
  • 始終聲明變量與var適當的範圍 - 不要退回到全球範圍
  • 包裝你的應用程序在一個封閉(function(){})()如果您計劃發佈運行服務器端代碼,以及在瀏覽器中
  • 回調應該採取err作爲第一個參數,如果他們自己採取的回調作爲參數,它應該是最後的,例如callback(err, param1, param2, callback)

縮進,大括號和關鍵字之間的間距以及分號放置都是優先選擇的問題。

+2

感謝您的回答。我想知道你爲什麼不提Ryan;)。但我從官方節點repo wiki得知他們遵循[Google的JavaScript風格指南](http://google-styleguide.googlecode.com/svn/trunk/javascriptguide.xml)。我之前並沒有這樣說過... – alienhard 2011-03-31 20:18:17

10

您可以瞭解從客戶端的JavaScript面向導軌很多優秀的編碼風格慣例(其中大部分也適用於一般於Node.js的,因爲客戶端和服務器端之間的區別主要是在圖書館,而不是在語言本身) 。例如JavaScript Patterns本書獻給這個話題的Chapter 2的某些部分。此外道格拉斯Crockford的websitebookvideos是一個必須看到的材料,以便採取特定的JavaScript編碼風格,我要說的最佳做法。

+3

+1 Douglas Crockford的書「JavaScript:The Good Parts」。它在一本簡潔/小書中有很多信息 - 一本沉重的閱讀,但是我讀過的最好的書之一。 – 2011-03-31 09:12:02

2

咖啡腳本,其中不良縮進意味着編譯錯誤

使用

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

流行的咖啡項目,zombiebrunch使用此設置的壓痕。

編輯:

其實,只是用這個! https://github.com/paulmillr/code-style-guidesbrunch的主要貢獻者之一)

6

當從終端使用節點時,它對於源代碼使用空格進行縮進非常有用。否則,「錯誤在這裏」脫字符將不會排隊。

隨着標籤:

 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的問題,但我懷疑不行。

+0

OP要求一個風格指南。不是一些具體的提示。 – mightyiam 2016-12-05 13:24:10

+0

@mightyiam確實如此,但縮進規則幾乎是每個樣式指南的一部分。也許我的觀點可以幫助OP評估其他人將鏈接的一些風格指南,或者可以幫助他制定他自己的風格指南。 – 2016-12-09 15:01:58

10

有一個新的城鎮標準。使用Standard Style

js-standard-style

+1

我不知道爲什麼這隻有3個upvotes ... – Luc 2016-08-08 00:30:50

+2

@Luc也許是因爲「無分號」規則。似乎是一種稱爲「標準」風格的奇怪選擇。 – 2016-12-02 15:31:16

+0

沒有分號不是一個好主意。它會打破一些縮小。 – denov 2017-04-06 22:12:18