多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

中國最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2

lua教程

Lua 代碼編寫規范

閱讀 (2658)

Lua代碼編寫規范 

開發中,大量使用lua,暫時根據當前狀況,總結相對而言較好的規范,在多人協作中可以更好的開發、交流。

介紹 

該文檔旨在為使用lua編寫應用程序建立編碼指南。 
制訂編碼規范的目的: 

  • 統一編碼標準,通用,提高開發效率; 
  • 使代碼通俗易懂,易于維護。 

切記:善用調試器。 

一、 命名慣例 

1.所有lua文件命名時使用小寫字母、下劃線

2.類名、變量名盡可能使用有意義的英文,類名使用帕斯卡命名法,變量名使用駱駝式命名法 

3.常量、消息號定義時用大寫,單詞間 _ 分割  eg:KIND_PET_FOOD

4.枚舉值定義時 加前綴 enum_ 

5. 函數名使用駱駝式命名法

注:

駱駝式命名法:第一個單字以小寫字母開始;第二個單字的首字母大寫或每一個單字的首字母都采用大寫字母

帕斯卡命名法:和駱駝命名法很像,只有一點區別,就是首字母要大寫。(單字之間不以空格斷開或連接號)

二、 文件組織 

1. 文件開頭加上此文件的功能、職責的簡要描述; 

如下:

--

-- Author: Feng

-- Date: XXXX-XX-XX

-- 功能描述

每個文件都加module 限定詞; 導入的模塊都加 local 限定詞;或者使用(module(..., package.seeall)),這樣便于進行熱更新

2. 所有提供外部函數都加如下格式的注釋。 

例如: 

--此函數檢測是否可以從A(oldx, oldy)點走到B點(newx, newy) 

--@param oldx 當前所在點x 

--@param oldy 當前所在點y 

--@param newx 目標點x 

--@param newy 目標點y 

--@return 若可以到達,返回true;否則返回false 

function Object:checkBar(oldx, oldy, newx, newy) 

… 

end 

3. 函數與函數間、以及一些定義之間加上空行。  

4. 函數內的臨時變量、文件內的局部函數都加上 local 限定詞 

5. 函數的行數過長(大于100行)時,盡量拆分為多個子函數;函數中一些晦澀的部分,一定要加上注釋。 

6. 短小的注釋使用 --; 較長的注釋使用 --[[ ]] 

7. assert函數開銷不小,請慎用。 

8. Lua類設計時,用元表來實現oop。 

不要直接增加函數成員,因為直接增加函數成員會導致內存增加并且在jit下執行效率和用元表方式無差異。 

9. 文件使用UTF8格式

三、 分隔和縮進 

1. 使用空行 

在下述情況下使用單行的空白行來分隔: 

1)在方法之間 

2)在方法內部代碼的邏輯段落小節之間 

3)在注釋行之前 

注釋之前增加一行或者多行空行。 

2.使用空格符

除正常的成分之間以空格符分隔名(如數據類型和變量名之間),在下述情況下也應使用一個空格符來分隔:

1)運算符和運算符之間,如: c = a + b;

2)在參數列表中的逗號后面,如:

function m1(year, month)

end

3) 在for語句時,如: 

for k, v in pairs(t) do 

end 

4)在下列情況下不要使用空格。 

例如: 

函數定義時: 

function test1(a) 

end 

不要這樣: 

function test1( a ) 

end 

函數調用時: 

test1(3) 

不要這樣: 

test1( 3 ) 

不要如此的原因在于: 

a).容易忘記相關空格,導致風格不統一,這樣還不如不加; 

b).lua解析語法時是采用空格等分割來解析的,某些情況下,若不小心加空格會導致非預期的結果。 

3. 使用換行符 

不建議在一行中寫多條語句,一條語句的長度一般超過了80個字符時,應該換行 

4. 使用小括號 

可以使用小括號來強行規定運算順序 

5. 使用縮進 

在下述情況下應用縮進 

1)類中的成分 

2)方法體或語句塊中的成分 

3)換行時的非起始行 

縮減量一般為在上一級成分的基礎上跑到下一個制表位 

四、代碼建議: 

1.代碼中使用的一些函數盡可能在文件開頭或者當前局部環境中加local前綴重新定義下。 

例如:

local assert = assert  

2.盡量減少表中的成員是另一個表的引用。 考慮lua的垃圾收集機制、內存泄露等。 

3.高級特性盡可能不用 

4.寫代碼時盡可能寫的簡單,考慮性能時先做好推斷,看看能提升多少,增加的復雜度以及造成的代碼晦澀有多嚴重,然后再決定如何做 

5.加載的xml數據表,盡可能的做好數據校驗,若校驗失敗,要出發斷言,使服務器無法啟動;不要等出錯時,回過頭來檢查是數據表問題還是邏輯問題。 

6.出錯時,記錄好錯誤日志。 

有的函數開銷比較大,而調用的頻率很低,那么可以不對他做優化; 

反之,有的函數開銷較小,但是調用的頻率很高,從如何降低調用頻率以及減少函數開銷兩個角度去思考,然后定下優化方案 

提交代碼之前,去掉或者注釋掉無關的代碼; 測試下保證服務器可以正確啟動。

關閉
程序員人生
主站蜘蛛池模板: 欧美高清在线不卡免费观看 | 日本夜免费视频视频大片 | 欧美日韩精品在线 | 日韩在线一区高清在线 | 国产精品三级在线观看 | 最近最新高清中文字幕 | 亚洲日本免费 | 日本欧美一级二级三级不卡 | 亚洲国产精品综合久久20 | 国产日韩精品欧美一区喷 | 羞羞动漫免费观看 | 成年人视频网站免费 | 日韩城人网站 | 久久亚洲美女久久久久 | 性色在线视频精品 | 三级国产在线观看 | 国产精品自在线拍国产 | 国产精品视频白浆免费视频 | 99re热久久| 亚洲一区二区三区久久 | 一级做a爱片就在线看 | 国产精品亚洲精品日韩己满十八小 | 久久精品国产69国产精品亚洲 | 精品国产综合成人亚洲区 | 免费的毛片网站 | 色日本在线| 呦视频在线一区二区三区 | 2021精品国产综合久久 | 亚洲成人在线视频 | 欧美巨大video粗暴 | 黄色网址www | 欧美一级欧美三级在线观看 | 成人区视频 | 欧美亚洲国产精品久久蜜芽 | 最近中文字幕国语完整在线5 | 久久久久久亚洲精品 | 色综合小说久久综合图片 | 一级淫片在线观看 | 中文亚洲日韩欧美 | 最近中文字幕资源4 | 羞羞动漫网址 |