最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解一些適用于Node.js的命名約定

 更新時間:2019年12月08日 10:32:00   作者:Liutos  
這篇文章主要介紹了詳解一些適用于Node.js的命名約定,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

序言

There are only two hard things in Computer Science: cache invalidation and naming things.
-- Phil Karlton

我喬魯諾·喬巴拿有一個夢想,便是要成為程序員巨星。但如果你看過我寫的代碼,便知道我還遠遠夠不上“巨星”二字。我的代碼中有許多不一致的命名:

  1. 常量的命名時而是全大寫的(如WAIT_CONFIRM),時而是全小寫的;
  2. 某個項目大部分命名用的是camel case(如TaskController),但由于數(shù)據(jù)庫中的列名用了snake case(如context_id),導(dǎo)致項目中與數(shù)據(jù)庫列有關(guān)的代碼混用了camel case和snake case(如restricted_hours[new Date(timestamp * 1000).getHours()] = 1;);
  3. 同樣是構(gòu)造復(fù)雜對象的函數(shù),它們的前綴可能會是build、create、make,甚至compute中的任何一個;
  4. 明明是一個數(shù)組,卻用了單數(shù)的order作為變量名。

之所以如此混亂,正是因為我沒有遵循一套一致的命名規(guī)則。每當我在一個項目中蹦出一些新想法時,便會躍躍欲試——不,我真的就用上了。我不曾整理過自己的命名規(guī)則(天哪我已經(jīng)寫了三年的JavaScript了),以至于無從判斷“新想法”是否真的新——也許它是一個已經(jīng)被我拋棄的規(guī)則。

為了不再深陷不一致命名的泥潭,我定下了本篇的命名規(guī)則,期望它們?yōu)橐院蟮奈抑更c迷津。

變量名

通用規(guī)則

  • 變量名使用camel case的命名風格。例如,使用namingConvention,而不是naming_convention;
  • 在盡量遵循規(guī)則的基礎(chǔ)上隨機應(yīng)變。

變量名的單復(fù)數(shù)規(guī)則

  • 如果一個變量存儲的值的類型為數(shù)組(即該變量作為Array.isArray方法的參數(shù)時結(jié)果為真),那么變量的名稱就使用復(fù)數(shù)形式。例如,使用fruits = []而不是fruit = []。
  • 如果一個變量存儲的值的類型為集合(即Set這個類型),那么變量的名稱應(yīng)當使用單詞unique為前綴。例如,使用uniqueUserIds而不是userIdSet。

布爾變量的命名規(guī)則

如果一個變量的值的類型為boolean,那么變量的名稱應(yīng)當以下列單詞為前綴:

  • is。當變量表達一個二元狀態(tài)的時候,例如isFull、isEmpty。在is后面的應(yīng)當是一個形容詞;
  • has。當變量表達歷史上是否發(fā)生過某個事件的時候,例如hasPaid、hasArrived。在has后面的應(yīng)當是一個動詞,并且采用過去分詞;
  • can。當變量表達某種權(quán)限的時候,例如canWrite、canExecute。在can后面的應(yīng)當是一個動詞,并且采用現(xiàn)在分詞。

數(shù)值變量的命名規(guī)則

  • 如果變量中存儲的是一系列數(shù)字中的最大值,那么變量的名稱應(yīng)當以max為前綴,例如maxScore。如果是最小值,則是以min為前綴,例如minScore;
  • 如果變量中存儲的是一系列數(shù)字的和,那么變量的名稱應(yīng)當以total為前綴,例如totalIncome;
  • 如果變量中存儲的是數(shù)組的長度,那么變量的名稱可以用numberOf為前綴,例如numberOfUsers。

字符串變量的命名規(guī)則

  • 如果表達的是人名、品牌名、公司名、數(shù)據(jù)庫中的表名,那么變量的名稱可以用單詞name結(jié)尾,例如customerName、brandName、companyName;
  • 如果表達的是按鍵或按鈕上刻著的文字、紙質(zhì)表格或電子表單上輸入框左側(cè)的簡短說明,那么變量的名稱可以用單詞label結(jié)尾,例如buttonLabel;
  • 不允許使用單詞content

函數(shù)名

  • 函數(shù)的名稱應(yīng)當由動詞和名詞組成,例如readFile、writeFile;
  • 如果函數(shù)的功能是將參數(shù)轉(zhuǎn)換為另一種形式的輸出(比如進制轉(zhuǎn)換、幣種轉(zhuǎn)換),那么函數(shù)的名稱應(yīng)當以單詞to為前綴,例如toDollar、toHexadecimal;
  • 如果函數(shù)的功能是檢驗參數(shù)并返回一個布爾值,那么函數(shù)的名稱應(yīng)當以單詞check為前綴,例如checkIsDirectory、checkIsExecutable;
  • 如果函數(shù)的功能是“計數(shù)”,那么函數(shù)的名稱應(yīng)當以單詞count為前綴,并且其中被計數(shù)的對象應(yīng)當為復(fù)數(shù)形式,例如countPaidOrders。

構(gòu)造型函數(shù)的命名規(guī)則

  • 如果表達的是從無到有地創(chuàng)造一個對象,那么函數(shù)名可以用create作為前綴,例如createObject;
  • 如果表達的是將一些輸入原封不動地放在一起(可能輸入之間添加了其它東西)創(chuàng)造出一個對象,那么函數(shù)名可以用make作為前綴,例如makeFloor。進一步地,如果函數(shù)不改變輸入的相對順序,那么函數(shù)名可以用concat,例如concatString;
  • 如果函數(shù)會將根據(jù)輸入創(chuàng)造出具有不止一個層級的對象,那么函數(shù)名可以用build作為前綴,例如buildBinarySearchTree。

修改型函數(shù)的命名規(guī)則

  • 如果函數(shù)負責更新數(shù)據(jù)庫中的記錄,那么函數(shù)名應(yīng)當以單詞update為前綴;
  • 如果函數(shù)修改的是一些可枚舉的狀態(tài),那么函數(shù)名應(yīng)當以單詞change為前綴。

類名

  • 類的名稱應(yīng)當采用capital case的命名風格,例如DatabaseConnection;
  • 類的名稱應(yīng)當以一個名詞結(jié)尾;
  • 如果類的存在是為了使用某種設(shè)計模式,那么類名應(yīng)當可以反映在設(shè)計模式中所處的位置,例如在State模式中,代表具體狀態(tài)的類的名稱可以是InitialState、UnpaidState。

參考資料

The art of naming variables
Google JavaScript Style Guide
Letter case

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 初步使用Node連接Mysql數(shù)據(jù)庫

    初步使用Node連接Mysql數(shù)據(jù)庫

    這篇文章主要介紹了Node連接Mysql數(shù)據(jù)庫的詳細步驟,思路清晰,幫助大家快速使用Node連接Mysql數(shù)據(jù)庫,感興趣的小伙伴們可以參考一下
    2016-03-03
  • Nodejs實現(xiàn)文件上傳的示例代碼

    Nodejs實現(xiàn)文件上傳的示例代碼

    這篇文章主要介紹了Nodejs文件上傳的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-09-09
  • 使用express+multer實現(xiàn)node中的圖片上傳功能

    使用express+multer實現(xiàn)node中的圖片上傳功能

    這篇文章主要介紹了使用express+multer實現(xiàn)node中的圖片上傳功能,需要的朋友可以參考下
    2018-02-02
  • nodejs?express實現(xiàn)中間件

    nodejs?express實現(xiàn)中間件

    這篇文章主要為大家介紹了nodejs?express實現(xiàn)中間件實例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-10-10
  • 詳解如何查看node端口被占用并殺死

    詳解如何查看node端口被占用并殺死

    這篇文章主要給大家介紹了如何查看node端口被占用并殺死,文中給出了相關(guān)的解決方法,并通過代碼示例給大家介紹的非常詳細,對前端開發(fā)要學(xué)會如何查看端口占用并殺死非常有用,需要的朋友可以參考下
    2024-01-01
  • 解析NodeJs的調(diào)試方法

    解析NodeJs的調(diào)試方法

    本文主要介紹了NodeJs調(diào)試的步驟,以及實例方法,具有一定的參考作用,需要的朋友可以看下
    2016-12-12
  • Node.js的路由、EJS模板引擎、GET和POST請求講解

    Node.js的路由、EJS模板引擎、GET和POST請求講解

    這篇文章介紹了Node.js的路由、EJS模板引擎、GET和POST請求,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • node實現(xiàn)爬蟲的幾種簡易方式

    node實現(xiàn)爬蟲的幾種簡易方式

    這篇文章主要給大家介紹了關(guān)于node實現(xiàn)爬蟲的幾種簡易方式,文中通過示例代碼介紹的非常詳細,對大家學(xué)習(xí)或者使用node具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • nodejs環(huán)境使用Typeorm連接查詢Oracle數(shù)據(jù)

    nodejs環(huán)境使用Typeorm連接查詢Oracle數(shù)據(jù)

    這篇文章主要介紹了nodejs環(huán)境使用Typeorm連接查詢Oracle數(shù)據(jù),本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-12-12
  • Node.js的非阻塞I/O、異步與事件驅(qū)動介紹

    Node.js的非阻塞I/O、異步與事件驅(qū)動介紹

    這篇文章介紹了Node.js的非阻塞I/O、異步與事件驅(qū)動,文中通過示例代碼介紹的非常詳細。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-06-06

最新評論

淮阳县| 贵南县| 玉林市| 资阳市| 庆城县| 靖边县| 平度市| 榆中县| 都安| 克山县| 泗阳县| 镶黄旗| 满洲里市| 平山县| 册亨县| 商洛市| 临清市| 公安县| 介休市| 祥云县| 汪清县| 台湾省| 菏泽市| 喀什市| 旬邑县| 营山县| 汝南县| 雷波县| 昌平区| 潼关县| 石景山区| 沾化县| 麻栗坡县| 游戏| 顺昌县| 大理市| 玉屏| 溆浦县| 论坛| 二手房| 大兴区|