作为IT从业人员,在日常编码过程中最为头痛和纠结的事情,莫过于代码变量的命名,特别是追求高质量代码又有洁癖的卓越工程师们。
作为非英语国家和没有第二语言(英语)的中国程序员,其实绝大多数人的英文水平都在四级水平,词汇量并不大,而且绝大多数都是哑巴英语,也不会写,只会阅读,通常还要借助各种翻译工具。作为其中的一员,我也深表无奈,读书那会儿眼界和努力不够,没有意识到英语的重要性,悔不当初。
在平时的工作中,特别是接手别人的项目或者多人协作时会发现代码中各种命名风格共荣;中英文混写;单词词不达意,不结合上下文环境仅凭变量根本判断不出其作用;很多人习惯使用简写,除了约写成俗的词汇外,会发现大量不认识的简写;最后还一点要提出的是,很多人单词压根儿都没有拼写对,还能造出好几种衍生词来等等问题。
本项目一方面是为了弥补2019年在 Segmentfault 个人博客上发表的系列文章(前端开发变量命名系列 - JavaScript篇和前端开发变量命名系列 - 常用英文词汇篇)不足和错误修正,还有就是完成后续系列,同时也希望更多的人加入来完善,促进圈子的发展,给新人以指导,一线同行以参考。
由于本人英语水平有限(CET-4),很多内容来自己于日常工作的积累以及借助翻译阅读大量英文文章、技术官方文档以及探寻Github开源项目所总结出来的。个人写作水平和知识面有限,希望能带动更多人参与其中,形成一个体系,伴随着后续工作和学习的不断深入调整和更新内容。
本文档主要以前端命名为主体,参杂部分后端,但以Node.js生态为主。
文档主要从几个方面着手:
- HTML: 在封装组件时如何命名组件和参数,以及选择合适的HTML标签。
- CSS: 类名一直都是前端工程师关注的重点,社区也有很多优秀的文章和最佳实践参考,这里就是大杂汇。
- JavaScript: 涉及到的前后框架、宿主环境以及使用场景的不同,分类别来阐述。
- 工程目录: 涉及到项目工程化以及框架的约束和通用规则。
- 英文词汇: 分类列举命名所需要的单词储备。
- 福利: 附加内容,分享一些日常开发工作必备工具和优秀项目。
只需要 Fork 项目然后提交或者修改内容即可。个人眼界和思维有局限性,并不意味着项目中的分类就是合理的,因此有更好的思路也可以及时调整分类。
在文档中需要注意注释部分,目前以 <!-- 内容 -->
作为内容块分类,以 //
作为块内容的分类,如果超出这个层级,建议另建分类。
由于词汇量较大,所以并没有加音标。
建议使用英文描述 Commit,其它不作要求,对于 Merge Request 使用 feat/fix: description
来命名。
目前流行的经典命名规则有:驼峰命名法(Camel case)、匈牙利命名法(Hungarian case)、下划线命名法(Underscore case)、帕斯卡命名法(Pascal case)、蛇形命名法(Snake case)。
相关命名的具体规则请另行查阅。前端主要涉及到驼峰命名法,React 组件会用到帕斯卡命名法。
变量命名通用规则如下:
- 变量名首字母必须为字母(a-z A-Z),下划线(_),或者美元符号($)开始
- 变量名只能是字母(a-z A-Z),数字(0-9),下划线(_)的组合,并且之间不能包含空格,数字不能放在变量名首位。
- 变量名不能使用编程语言的保留字。比如在 JavaScript 中不能使用
true
,false
,while
等保留字。
这里给出一些在开发过程中约定成俗的通用规则,涉及 JavaScript, Typescript, 框架组件, 样式及目录等。在文章中将使用【强制】来表示必须严格遵守,【推荐】来表示建议,【参考】来给出多种命名方式的一种。
todo...
- most-frequent-technology-english-words 程序员工作中常见的英语词汇