91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

一些適用于Node.js命名約定的示例分析

發布時間:2021-07-27 14:39:46 來源:億速云 閱讀:168 作者:小新 欄目:web開發

小編給大家分享一下一些適用于Node.js命名約定的示例分析,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

序言

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

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

  1. 常量的命名時而是全大寫的(如WAIT_CONFIRM),時而是全小寫的;

  2. 某個項目大部分命名用的是camel case(如TaskController),但由于數據庫中的列名用了snake case(如context_id),導致項目中與數據庫列有關的代碼混用了camel case和snake case(如restricted_hours[new Date(timestamp * 1000).getHours()] = 1;);

  3. 同樣是構造復雜對象的函數,它們的前綴可能會是build、create、make,甚至compute中的任何一個;

  4. 明明是一個數組,卻用了單數的order作為變量名。

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

為了不再深陷不一致命名的泥潭,我定下了本篇的命名規則,期望它們為以后的我指點迷津。

變量名

通用規則

  • 變量名使用camel case的命名風格。例如,使用namingConvention,而不是naming_convention;

  • 在盡量遵循規則的基礎上隨機應變。

變量名的單復數規則

  • 如果一個變量存儲的值的類型為數組(即該變量作為Array.isArray方法的參數時結果為真),那么變量的名稱就使用復數形式。例如,使用fruits = []而不是fruit = []。

  • 如果一個變量存儲的值的類型為集合(即Set這個類型),那么變量的名稱應當使用單詞unique為前綴。例如,使用uniqueUserIds而不是userIdSet。

布爾變量的命名規則

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

  • is。當變量表達一個二元狀態的時候,例如isFull、isEmpty。在is后面的應當是一個形容詞;

  • has。當變量表達歷史上是否發生過某個事件的時候,例如hasPaid、hasArrived。在has后面的應當是一個動詞,并且采用過去分詞;

  • can。當變量表達某種權限的時候,例如canWrite、canExecute。在can后面的應當是一個動詞,并且采用現在分詞。

數值變量的命名規則

  • 如果變量中存儲的是一系列數字中的最大值,那么變量的名稱應當以max為前綴,例如maxScore。如果是最小值,則是以min為前綴,例如minScore;

  • 如果變量中存儲的是一系列數字的和,那么變量的名稱應當以total為前綴,例如totalIncome;

  • 如果變量中存儲的是數組的長度,那么變量的名稱可以用numberOf為前綴,例如numberOfUsers。

字符串變量的命名規則

  • 如果表達的是人名、品牌名、公司名、數據庫中的表名,那么變量的名稱可以用單詞name結尾,例如customerName、brandName、companyName;

  • 如果表達的是按鍵或按鈕上刻著的文字、紙質表格或電子表單上輸入框左側的簡短說明,那么變量的名稱可以用單詞label結尾,例如buttonLabel;

  • 不允許使用單詞content

函數名

  • 函數的名稱應當由動詞和名詞組成,例如readFile、writeFile;

  • 如果函數的功能是將參數轉換為另一種形式的輸出(比如進制轉換、幣種轉換),那么函數的名稱應當以單詞to為前綴,例如toDollar、toHexadecimal;

  • 如果函數的功能是檢驗參數并返回一個布爾值,那么函數的名稱應當以單詞check為前綴,例如checkIsDirectory、checkIsExecutable;

  • 如果函數的功能是“計數”,那么函數的名稱應當以單詞count為前綴,并且其中被計數的對象應當為復數形式,例如countPaidOrders。

構造型函數的命名規則

  • 如果表達的是從無到有地創造一個對象,那么函數名可以用create作為前綴,例如createObject;

  • 如果表達的是將一些輸入原封不動地放在一起(可能輸入之間添加了其它東西)創造出一個對象,那么函數名可以用make作為前綴,例如makeFloor。進一步地,如果函數不改變輸入的相對順序,那么函數名可以用concat,例如concatString;

  • 如果函數會將根據輸入創造出具有不止一個層級的對象,那么函數名可以用build作為前綴,例如buildBinarySearchTree。

修改型函數的命名規則

  • 如果函數負責更新數據庫中的記錄,那么函數名應當以單詞update為前綴;

  • 如果函數修改的是一些可枚舉的狀態,那么函數名應當以單詞change為前綴。

類名

  • 類的名稱應當采用capital case的命名風格,例如DatabaseConnection;

  • 類的名稱應當以一個名詞結尾;

  • 如果類的存在是為了使用某種設計模式,那么類名應當可以反映在設計模式中所處的位置,例如在State模式中,代表具體狀態的類的名稱可以是InitialState、UnpaidState。

以上是“一些適用于Node.js命名約定的示例分析”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

阿鲁科尔沁旗| 新化县| 简阳市| 内黄县| 玉溪市| 巴楚县| 文昌市| 怀远县| 临城县| 永清县| 仲巴县| 惠安县| 永嘉县| 扶沟县| 武鸣县| 秀山| 锦屏县| 山阴县| 台北县| 富民县| 泰和县| 浦江县| 汉阴县| 六安市| 鄂托克旗| 沂水县| 红河县| 顺义区| 建昌县| 元谋县| 宜黄县| 子洲县| 吉安市| 临夏县| 凤山市| 新野县| 桑植县| 吉安县| 南通市| 衡阳市| 五常市|