前端修养-代码规范

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语法规范。


命名法

驼峰命名法

小驼峰式命名法:

第一个单词以小写字母开始;第二个单的首字母大写,例如:firstNamelastName


大驼峰式命名法:每一个单的首字母都采用大写字母,例如:FirstNameLastNameCamelCase,也被称为Pascal命名法。


下划线命名法

小下划线命名法:

所有字母均为小写,例如登录按钮:login_btn


大下划线命名法:

所有字母均为大写,常见于常量,例如:最小间隔时间MIN_GAP_TIME

上述两者可选其一,然后持续保持即可。


变量命名

对于变量(包括函数),

小驼峰式命名法或小下划线命名法是一个好选择。比如:curSpeed表示当前速度,canDrop表示是否能掉落等等。

对于布尔值型的变量,通常前缀加上is可以方便理解,比如isRemovedRemoved更加能表示这是一个布尔值变量。

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 SystemXML解析库名为lxp,表示LuaXML Parser等等。


文件名

通常为了不与类名混淆,对于文件名,经常使用小驼峰式命名法或小下划线命名法。



惯用法(用法-推荐)

1 。尽可能使用local修饰变量

使用local的变量会在作用域结束时释放其内存使用local的变量会比全局变量的存取更快全局变量会污染全局的命名空间,可能会导致诡异的bug出现直接判断真假值


前端修养-代码规范

原因:

Lua在逻辑判断时将所有非falsenil的逻辑判断视为真,反之视为假,不需要再与布尔值和nil进行比对。

但是,在需要对falsenil进行区分时,需要写明==obj== nilobj== false


默认参数的实现

范式:param= param or defaultValue

前端修养-代码规范

原因:or会在第一次为true的时候断路,返回其判断的最后一个值。

所以当name为空时,nameor ‘noName返回为’noName,这会将name的值自动设置为noName


一行代码判断表是否为空

#t ==0并不能判断表是否为空,因为#预算符会忽略所有不连续的数字下标和非数字下标。


因为表的键可能为false,所以必须与nil比较,而不直接使用~next(t)来判断表是否空。


更快的插入代码



其余相关参考文章:




以上是关于前端修养-代码规范的主要内容,如果未能解决你的问题,请参考以下文章

学好webpack,一名前端开发工程师的自我修养。

前端架构的自我修养

项目开发修养

php Yoast SEO规范输出的代码片段

php Yoast SEO规范输出的代码片段

iOS Coding Style Guide 代码规范