国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網(wǎng)站 > 幫助中心 > 正文

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

2024-07-09 22:42:26
字體:
供稿:網(wǎng)友

序言

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

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

常量的命名時而是全大寫的(如WAIT_CONFIRM),時而是全小寫的; 某個項目大部分命名用的是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;); 同樣是構(gòu)造復(fù)雜對象的函數(shù),它們的前綴可能會是build、create、make,甚至compute中的任何一個; 明明是一個數(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。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 遵化市| 舟曲县| 闽侯县| 田东县| 抚顺县| 尼木县| 大关县| 上饶市| 临邑县| 竹溪县| 楚雄市| 子洲县| 丹巴县| 罗平县| 洛隆县| 万山特区| 皮山县| 新田县| 双峰县| 玉屏| 疏勒县| 浮梁县| 夏津县| 滦南县| 平塘县| 囊谦县| 五台县| 天峨县| 崇阳县| 琼结县| 贡觉县| 屯昌县| 嫩江县| 虹口区| 本溪市| 商丘市| 达日县| 涞源县| 修水县| 江西省| 阿拉尔市|