前言
代碼的規范可以讓我們在冗長而無趣的開發中保持愉悅的心情,一般有些年限的程序員都有自己的一套代碼規范,而且說起來也是頭頭是道。一般情況下,剛開始的項目,因為工期不急,邏輯簡單單一,我們可以很耐心很規范的去書寫我們的代碼。整潔,漂亮,結構嚴謹,邊寫邊點頭,滿滿的成就感!但是一到了工期比較趕或者邏輯比較復雜的時候,我們通常就很少靜下來思考如何編排代碼,讓我們的代碼優雅如初。我們選擇的是哪里需要寫哪里,很多甚至都不管公用的代碼,導致到處冗余。冗余重復代碼太多就會導致修改一個需求就要動到多個代碼文件的下場,不僅修改困難,而且容易遺漏!
視頻地址
svn://10.1.1.11/babybus-lua/video/代碼規范/代碼規范.mov
常見代碼問題
- 1.縮進問題
代碼的縮進,是保持代碼整齊的一個重要功能,我們要習慣用Tab鍵來控制我們的代碼塊
function M:onTouchBegan()
self:doSomeThing(
param,
function()
self:callback()
end
)
end
- 2.注釋問題
寫得好的代碼是不需要注釋的,但是我建議邏輯復雜的還是要給一點注釋
--[[
]]
和
//
- 3.命名規范
很多時候我們會看到很多奇葩的命名,例如 addCao , findCha 等中英結合的詞語,這種詞在給別人閱讀代碼會造成很大的麻煩。命名最好用英文全稱,也不要簡寫,除非你的簡寫命名很多人都會知道
駝峰命名法
findCar 由 find 和 car合成,結合一起第二個單詞首字母大寫
findCarBottom 這個是由3個單詞合成,連接的首字母大寫,以此類推
盡量不要出現阿拉伯數字和中文
使用阿拉伯數字,意思不明確
使用中文,有可能碰到編碼格式中文亂碼
如果自己不習慣使用駝峰,習慣使用連接符的話,也可以,但是不要一會駝峰,一會連接符
如 find_car_bottom 一會就findBottom,要有屬于自己的風格
避免使用長的名字(小于 15 個字母是個好主意)
- 4.方法書寫的格式
function 和 M的空格保持一個空格就好,不要有3, 4, 5, 6個
function M:onTouchBegan()
end
- 5.參數的間隔
(params1, params2, params3, params4)
- 6.運算符之間前后要空格
local a = a
a = a + 1
不要
a=a
a=a+1
這樣
- 7.方法行數控制
方法內行數最好不要超過25行,超過了就抽出邏輯成立一個新的方法 - 8.返回值最好放在最后
function M:method()
local result = nil
if condition then
result = a
// 不要這樣寫
//return a
end
return a
end
- 9.對象賦值
如果我們要把node給self._ButtonMe,就只要改一個地方
function M:loadButton()
local node = D.img("button.png"):pc():to(self)
node.a = a
node.b = b
node.c = c
// 修改變量名只要修改一個地方
self._Button = node
end
- 10.文件命名
文件名要跟類名一致,也可以采取駝峰命名類的文件首字母大寫, GamePlayerScene.lua對應的類應該如下
class("GamePlayerScene"),
classScene("GamePlayer") - 11.如果類中存在繼承,那么習慣調用父類的構造函數和銷毀時候調用父類銷毀,因為Lua不是真正面向對象
M.super.ctor(params) super為父類 - 12.抽象類要記得加上Abstract前綴,需要繼承的方法,用斷言實現.沒有實現就報錯
function M:implement()
log.e("implement 尚未實現!!!!")
end
- 13.變量使用,盡量使用非空判斷, 經常碰見因為沒有非空判斷出現錯誤的,需要養成習慣
- 14.善于抽取公共的組件和工具類的實現,只有一個功能或者組件可能被重復使用2次以上,我們便要把它變成組件,可插拔的組件,那么我們就可以減少重復性代碼
- 15.多使用斷言J.assert(tag, condition, message)
- 16.學會定期的對自己的代碼進行重構,如果你的項目比較趕,你可以一周抽出幾小時對你這周的代碼進行重構,那么對你的影響必定是深遠的。