变量命名规范
规范的目的是希望整个项目开发节奏一致,相互之间进行阅读代码的时候可以更少的转化思维,从而达到更好的合作,当然不同境界的程序员对代码的认知能力不一样,规范总是落后于认知的但约束认知的,比如牛顿三大定律约束人类对世界的认知,相对论又改变了这种认知模式,所以在任何场合规范是可以突破的,就事论事,在团队合作的时候就需要规范。
驼峰命名
js中推荐的命名方式,ECMAScript 规范中标识符采用驼峰大小写格式
常量
使用大写字母和下划线来组合命名,下划线用以分割单词
函数
应该以小驼峰命名,前缀应当为动词
类
大驼峰式命名法,首字母大写
私有属性和方法
前缀为_(下划线),后面跟公共属性和方法一样的命名方式。
参数注释
@param 参数名 {参数类型} 描述信息
@return {返回类型} 描述信息
文件命名
- 一般推荐用中划线分割,也有开发团队使用下划线,但要么前者,要么后者
- React组件以默认导出的的组件类名命名,或者文件内部以最核心的组件命名
- 还有一些其他的命名方式,自行感受,并不推荐,除非很有魄力
- 文件命名应该都是以用名词命名,避免使用动词,文件可以借鉴下图vue
- 类和api命名方式,可以借鉴express
- 特殊文件,比如 agent.v1.0.82.js vendors~main.v1.0.82.js
这个是express里的app方法和Router类命名,比较经典
这个是vue中关于compiler的命名
css class和id命名
class 中划线+小写,字符长度不宜多于三个,三个里不包含前缀。 id 和class不一样,id更加像一个名字,比如js可以直接用id获取dom,所以很多开发用小写+下划线的方式。
总结
影响命名的因素只有一个,就是辨识度,所以这些规范都是为了提高辨识度去定的,一般人会对中划线作为分词符号更符合认知,因为英语课本里都是这么做的。
所以 hello-world 更像是一个词汇,而hello_world更像是计算机命名,因此推荐将和编程命名无关的名词用中划线的方式命名,最近在学习python,也很容易理解python的文件名命名成 __init__.py 是因为这个是包初始化的方法的名字。
最后,关于命名,很多名称在文件内部作为普通字符串,比如 actionType='open-toggle' 其实这种地方的open-toggle应该用什么方式,并没有人对此去做规范,但我个人还是推荐用中划线的方式,原因也只是规范。而事实上我们可能需要 controller[actionType] 这样去调用一个api的时候就不得不使用 actionType = 'openToggle' 这样的方式了。
参考文章
前端编码规范 juejin.im/entry/59ca1…
javascript开发规范 juejin.im/entry/599d4…