npm 編碼風格

2021-10-29 10:53 更新

描述

npm 的編碼風格有點不合常規(guī)。它并沒有因為差異而不同,而是一種精心設計的風格,旨在減少視覺混亂并使錯誤更加明顯。

如果你想為 npm 做出貢獻(這是非常受鼓勵的),你應該讓你的代碼符合 npm 的風格。

注意: 這涉及 npm 的代碼,而不是你可以從 npm 注冊表下載的特定包。

線長

保持行短于 80 個字符。

一行代碼內容短一些總比一長串的代碼要來得好。將長列表、對象和其他語句分解為多行。

縮進

兩個空格。 Tab 縮進更好,但它們在 Web 瀏覽器(和 GitHub 上)中看起來特別的不好,節(jié)點用 2 個空格,就是這樣。 應該適當地配置你的編輯器。

大括號

大括號與需要它們的內容在同一行。 不好:

function()
{

好的:

function(){

如果塊需要換到下一行,請使用花括號。如果沒有,請不要使用它。 壞的:

if(foo){bar()}
while(foo)
    bar()

好的:

if(foo) bar()
while (foo){
    bar()
}

分號

除了以下的四種情況之外,就不要使用它們:

  • for(;;) 循環(huán) 它們實際上時必須的。
  • 類似while(something);的空循環(huán) 但你最好有一個為什么要這么做的理由。
  • case 'foo':doSomethin();break
  • 在領先的前([在該行的開始。這可以防止表達式分別被誤解為函數調用或屬性訪問。

一些良好的分號用法示例:

;(x || y).doSomethin()
;[a, b, c].forEach(doSomething)
for (var i = 0; i < 10; i ++) {
  switch (state) {
    case 'begin': start(); continue
    case 'end': finish(); break
    default: throw new Error('unknown state')
  }
  end()
}

請注意,以-and開頭的行+也應該以分號為前綴,但這種情況不太常見。

逗號優(yōu)先

如果有一個由逗號分隔的事物列表,并且它包含在多行中,請將逗號放在下一行的開頭,直接在開始列表的標記下方。將列表中的最后一個標記單獨放在一行上。例如:

var magicWords = [ 'abracadabra'
                 , 'gesundheit'
                 , 'ventrilo'
                 ]
  , spells = { 'fireball' : function () { setOnFire() }
             , 'water' : function () { putOut() }
             }
  , a = 1
  , b = 'abc'
  , etc
  , somethingElse

引號

對字符串使用單引號,除非避免轉義。 壞的:

var notOk = "Just double quotes"

好的:

var ok = 'String contains "double" quotes'
var alsoOk = "String contains 'single' quotes or apostrophe"

空白

(函數調用之外的任何內容前面放置一個空格。也可以在任何使事情更具可讀性的地方使用單個空格。

不要在行尾留下尾隨空格。不要縮進空行。不要使用多余的空格。

函數

使用命名函數。它們使堆棧跟蹤更易于閱讀。

回調,同步/異步樣式

盡可能使用異步/非阻塞版本的事物。npm 使用同步 fs API 可能更有意義,但是這樣,fs 和 http 以及子進程都使用相同的回調傳遞方法。

回調應該始終是列表中的最后一個參數。它的第一個參數是 Error 或 null。

要非常小心,永遠不要扔任何東西。這比沒用更糟糕。只需將錯誤消息作為回調的第一個參數發(fā)送回即可。

錯誤

始終使用您的消息創(chuàng)建一個新的 Error 對象。不要只是向回調返回一個字符串消息。堆棧跟蹤很方便。

日志記錄

日志記錄是使用[npm-config]()實用程序完成的。

當日志不再有用時,請清理日志。特別是,一遍又一遍地記錄同一個對象是沒有幫助的。日志應該報告正在發(fā)生的事情,以便更容易地跟蹤故障發(fā)生的位置。

使用適當的日志級別。查看 npm-config 并搜索 "loglevel"。

案例、命名等

使用使用lowerCamelCase時,他們指的對象,函數,方法,屬性,或者在本節(jié)中未指定任何東西多字的標識符。

使用UpperCamelCase的類名(的東西,你會傳遞到“新”)。

使用all-lower-hyphen-css-case對多字的文件名和配置鍵。

使用命名函數。它們使堆棧跟蹤更容易跟蹤。

使用CAPS_SNAKE_CASE常量,事情應該不會改變,并且很少使用。

函數名使用單個大寫字母,函數通常是匿名的,但需要遞歸調用自身。它清楚地表明這是一個“一次性”功能。

空、未定義、假、0

布爾變量和函數應始終為true或?false。不要將它設置為 0,除非它應該是一個數字。

當故意丟失或刪除某些內容時,請將其設置為null

不要將事情設置為undefined.?保留該值以表示“尚未設置為任何內容”。

禁止使用布爾對象。

以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號