前端修养-代码规范
Posted ProYuki
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了前端修养-代码规范相关的知识,希望对你有一定的参考价值。
万丈高楼平地起,码农修身开头难,前端大佬首要基础--代码规范。代码规范犹如人之食白米饭,不见其味,却于平凡中显不平庸。
一,规范的代码可以促进团队合作;
二、规范的代码可以减少bug处理;
三、规范的代码可以降低维护成本;
四、规范的代码有助于代码审查;
五、养成代码规范的习惯,有助于程序员自身的成长。
这一件不紧急,不重要,但是需要足够认知,并坚持不懈的事情,值得整个职业生涯去维系。
在互联网行业,不同公司都有自己的一套代码规范。但是在程序员的心中,G厂(google)才是圣地。Google的代码规范又有哪些呢?
附赠链接
https://zh-google-styleguide.readthedocs.io/en/latest/contents/
这是国内大佬们维护的可参考规范。
https://github.com/google/styleguide --正源
参观完大佬们的高光之处,来讲讲项目中的一些小细节。
Lua代码规范(参考)
鉴于工作中最近常用到的是Lua脚本开发,来讲讲Lua语法规范。
命名法
驼峰命名法
小驼峰式命名法:
第一个单词以小写字母开始;第二个单词的首字母大写,例如:firstName、lastName。
大驼峰式命名法:每一个单词的首字母都采用大写字母,例如:FirstName、LastName、CamelCase,也被称为Pascal命名法。
下划线命名法
小下划线命名法:
所有字母均为小写,例如登录按钮:login_btn。
大下划线命名法:
所有字母均为大写,常见于常量,例如:最小间隔时间MIN_GAP_TIME。
上述两者可选其一,然后持续保持即可。
变量命名
对于变量(包括函数),
小驼峰式命名法或小下划线命名法是一个好选择。比如:curSpeed表示当前速度,canDrop表示是否能掉落等等。
对于布尔值型的变量,通常前缀加上is可以方便理解,比如isRemoved比Removed更加能表示这是一个布尔值变量。
Lua中有一种特殊的变量名:_,常用来表示可以被忽略的、不会使用到的变量,常使用在循环中。
在表的循环中和函数参数列表中,i常表示ipairs下的数组下标,k常表示pairs下的键,v常表示对应的值,t则表示表。
for k, v inpairs(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,表示LuaFile System;XML解析库名为lxp,表示LuaXML Parser等等。
文件名
通常为了不与类名混淆,对于文件名,经常使用小驼峰式命名法或小下划线命名法。
惯用法(用法-推荐)
1 。尽可能使用local修饰变量
使用local的变量会在作用域结束时释放其内存使用local的变量会比全局变量的存取更快全局变量会污染全局的命名空间,可能会导致诡异的bug出现直接判断真假值
原因:
Lua在逻辑判断时将所有非false和nil的逻辑判断视为真,反之视为假,不需要再与布尔值和nil进行比对。
但是,在需要对false和nil进行区分时,需要写明==:obj== nil和obj== false。
默认参数的实现
范式:param= param or defaultValue
原因:or会在第一次为true的时候断路,返回其判断的最后一个值。
所以当name为空时,nameor ‘noName’返回为’noName’,这会将name的值自动设置为noName。
一行代码判断表是否为空
用#t ==0并不能判断表是否为空,因为#预算符会忽略所有不连续的数字下标和非数字下标。
因为表的键可能为false,所以必须与nil比较,而不直接使用~next(t)来判断表是否空。
更快的插入代码
其余相关参考文章:
以上是关于前端修养-代码规范的主要内容,如果未能解决你的问题,请参考以下文章