## 命名
最好的代碼是自說明代碼,這種代碼不需要多余的注釋,其本身便具備了描述作者意圖的信息。一種好的命名風格是自說明代碼的基礎。
### 命名法
#### 駝峰命名法
* 小駝峰式命名法:第一個單字以小寫字母開始;第二個單字的首字母大寫,例如:`firstName`、`lastName`。
* 大駝峰式命名法:每一個單字的首字母都采用大寫字母,例如:`FirstName`、`LastName`、`CamelCase`,也被稱為Pascal命名法。
#### 下劃線命名法
* 小下劃線命名法:所有字母均為小寫,例如登錄按鈕:`login_btn`。
* 大下劃線命名法:所有字母均為大寫,常見于常量,例如:最小間隔時間`MIN_GAP_TIME`。
采用駝峰法或者下劃線法都不太重要,重要的是你采用了自己喜歡的一種命名法,然后一直保持下去。
### 變量名長度
通常作用域范圍更大的變量名要比作用域范圍更小的變量名具有更多的描述信息。例如:`i`經常用于循環中充當計數變量,而將其作為全局變量使用容易導致諸多問題。
### 變量命名
對于變量(包括函數),小駝峰式命名法或小下劃線命名法是一個好選擇。比如:`curSpeed`表示當前速度,`canDrop`表示是否能掉落等等。
對于布爾值型的變量,通常前綴加上`is`可以方便理解,比如`isRemoved`比`Removed`更加能表示這是一個布爾值變量。
Lua中有一種特殊的變量名:`_`,常用來表示可以被忽略的、不會使用到的變量,常使用在循環中。
~~~
-- `_`表示表的鍵可以被忽略,只在循環內使用表中的值`v`
for _,v in ipairs(t) do print(v) end
~~~
在表的循環中和函數參數列表中,`i`常表示`ipairs`下的數組下標,`k`常表示`pairs`下的鍵,`v`常表示對應的值,`t`則表示表。
~~~
for k,v in pairs(t) do ... end
for i,v in ipairs(t) do ... end
mt.__newindex = function(t, k, v) ... end
~~~
### 常數命名
Lua里沒有嚴格的常數定義標識符,所以對于常數的命名格外重要。
常數一般采用大下劃線命名法。這樣每個字母都大寫,十分醒目,且各個單詞都用下劃線分割,便于閱讀。
比如:`MAX_SPEED`表示最大速度,`IS_SHOW_DEBUG_ERROR_MSG`表示是否顯示報錯消息等等。
### 類名
為了不與變量名和常數名混淆,類名通常使用大駝峰式命名法,即首字母大寫。比如:`TouchManager`表示觸摸管理器類。
### 包和模塊名
包名和模塊名通常很短,并且全部小寫,單詞間并沒有下劃線區分。比如:文件讀取庫名為`lfs`,表示`Lua File System`;XML解析庫名為`lxp`,表示`Lua XML Parser`等等。
### 文件名
通常為了不與類名混淆,對于文件名,經常使用小駝峰式命名法或小下劃線命名法。