Github标星7.9K!程序员专属的命名宝典来了
开源最前线(ID:OpenSourceTop) 猿妹编译
地址:https://github.com/kettanaito/naming-cheatsheet
命名一直是程序员最烦恼的事情之一,一个好的命名可以让一段代码看起来可读性更强,后续维护的人员也会更轻松。因此,在团队中统一使用同一套命名规范是相当有必要的。
今天,猿妹要和大家分享一份命名宝典,专门帮助程序员如何命名,这个项目介绍了命名时需要考虑的数个要点,旨在帮你解决命名困难的问题,教你如何便捷、轻松地进行命名,这个项目就叫——naming-cheatsheet。
naming-cheatsheet已经在Github上标星 7.9K,累计分支 386 个(Github地址:https://github.com/kettanaito/naming-cheatsheet)
这些命名规则适用于任何编程语言,创建者以JavaScript为例演示,一起来看看吧:
英语命名
在命名变量和函数名时用英文名称命名:
/* Bad */
const primerNombre = 'Gustavo'
const amigos = ['Kate', 'John']/* Good */
const firstName = 'Gustavo'
const friends = ['Kate', 'John']
不管你喜欢与否,英语是编程中的主导语言,所有编程语言的语法都是用英语编写的,还有无数的文档和教学资料也是英文,通过英语编写代码,可以极大地增加代码的凝聚力。
约定命名
选择一套命名规范并遵循它,在团队中保持命名的一致性,它可以是camelCase、PascalCase、snake_case或其他任何东西。许多编程语言在命名约定方面都有自己的传统,你可以查看自己的编程语言文档或者学习一些Github上流行的知识库。
/* Bad */
const page_count = 5
const shouldUpdate = true/* Good */
const pageCount = 5
const shouldUpdate = true/* Good as well */
const page_count = 5
const should_update = true
S-I-D命名原则
名称必须简短、直观和描述性:
短:输入一个名称一定不要花太长时间,因此一定要简短
直观:名称读起来一定要直观,尽可能贴近日常用语
描述性:名称必须可以用最有效的方式反映它的作用
/* Bad */
const a = 5 // "a" could mean anything
const isPaginatable = a > 10 // "Paginatable" sounds extremely unnatural
const shouldPaginatize = a > 10 // Made up verbs are so much fun!/* Good */
const postCount = 5
const hasPagination = postCount > 10
const shouldPaginate = postCount > 10 // alternatively
避免过度的简写
不要使用缩写,它们只会降低代码的可读性,找到一个简短的可读的名称可能会很难,但即便如此也别使用简写。
/* Bad */
const onItmClk = () => {}/* Good */
const onItemClick = () => {}
避免重复命名
上下文的名称不应该重复
class MenuItem {/* Method name duplicates the context (which is "MenuItem") */handleMenuItemClick = (event) => { ... }/* Reads nicely as `MenuItem.handleClick()` */handleClick = (event) => { ... }
}
反映预期结果
变量或函数的命名应该做到能够反映预期的结果。
/* Bad */
const isEnabled = itemCount > 3
return <Button disabled={!isEnabled} />/* Good */
const isDisabled = itemCount <= 3
return <Button disabled={isDisabled} />
以上就是命名的6大原则,除此之外,创建者还介绍了命名模式,诸如A/HC/LC模式、动作、前缀、单复数等模式,感兴趣的不妨自己去学习一下吧。
更多精彩内容,关注我们▼▼
Github标星7.9K!程序员专属的命名宝典来了相关推荐
- GitHub标星百万的程序员转架构之路,竟被阿里用作内部晋升参考
架构师是很多程序员的奋斗目标,也可以说是职场生涯的一个重要选择方向,今天我就跟大家聊一聊如何从一个程序员成长为一个架构师. 首先我们先来看看架构师的定义到底是什么? 系统架构师是一个不仅需要主持整体又 ...
- Github标星24.9k!适合初学者的有趣、入门级的开源项目
本文推荐一个标星24.9k的GitHub上有趣.入门级的开源项目:HelloGitHub.内容包括:流行项目.入门级项目.让生活变得更美好的工具.书籍.学习心得笔记.企业级项目等,这些开源项目大多都是 ...
- 卧槽!GitHub标星7.9K star,抢茅台酒脚本竟然开源了!网友:已抢到,真香!
点击上方"Github爱好者社区",选择星标 回复"资料",获取小编整理的一份资料 作者:GG哥 来源:GitHub爱好者社区(github_shequ) 这是 ...
- GitHub 标星 4.9k,李笑来开源的英语学习课
我记得有一次,有个读者私信我说,"哥,外企对英语的要求高吗?明年毕业后我打算去外企应聘."当时我听完脑袋一阵嗡嗡作响,我在想,这个问题它就不应该成立啊! 即便是不去外企,对于我们程 ...
- B站收藏 6.1w !GitHub 标星 3.9k !这门神课拯救了我薄弱的计算机基础
作者 | Rocky0429 来源 | Python空间 注:之前就一直强调计算机基础的重要性,今天给你们搜索了相应的课程 大家好,我是 Rocky0429,一个对计算机基础一无所知的蒟蒻... ...
- (GitHub标星6.9k)超详细的人工智能专家路线图,
这个学习路线图几乎涵盖了人工智能领域的所有内容,点点鼠标,就能链接所需知识. 机器之心报道,机器之心编辑部. 原文链接:https://zhuanlan.zhihu.com/p/273580093 想 ...
- GitHub 标星 2.3k+,比个手势,AI 自动识别 Emoji!
关注 "GitHubDaily" 设为 "星标",每天带你逛 GitHub! 转自量子位,作者圆栗子 一只手势识别 AI,怎样才算得上 (优) 秀啊? 不停地变 ...
- Github标星的Chrome 插件,开发者必备
Github标星的Chrome 插件,开发者必备 对于web工程师来说,Chrome已经是Web开发中使用最多的浏览器,然而各种各样的Chrome插件层出不穷,成为web工程师的尖锐武器. [mark ...
- python123判断火车票座位号分布图_面向回家编程!GitHub标星两万的Python抢票教程”,我们先帮你跑了一遍...
原标题:面向回家编程!GitHub标星两万的"Python抢票教程",我们先帮你跑了一遍 大数据文摘出品 作者:曹培信.池俊辉 盼望着,盼望着, 春节的脚步近了, 然而,每年到这个 ...
最新文章
- 分析数据时,一定要避开这5大误区!
- SSH整合中,使用父action重构子类action类.(在父类中获取子类中的泛型对象)
- 基于深度卷积神经网络的目标检测研究综述
- 【Android进阶】Junit单元測试环境搭建以及简单有用
- 【RMQ问题】求数组区间最大值,NYOJ-1185-最大最小值
- java实验6 词频统计_Java实现的词频统计——单元测试
- poj-3176 Cow Bowling poj-1163 The Triangle hihocoder #1037 : 数字三角形 (基础dp)
- 使用Java调用默认浏览器打开指定网址
- <<道 德 经>>------老子
- DSP程序中常出现的EINT、DINT、ERTM、DRTM、EALLOW、EDIS的理解
- 手把手写深度学习(3)——用RNN循环神经网络自动生成歌词之理论篇
- 【LTE学习日记01】子载波功率与信道功率的换算
- linux怎么把dos改成unix_如何将文本文件在 Unix和DOS格式之间转换
- 深度学习|费解的tensorflow
- 酒店管理系统的设计与实现/酒店客房管理系统/酒店预定系统
- 自动延时关机电路分析
- 为什么女性朋友容易患上拇外翻?
- ei检索计算机科学与应用,国内EI检索的期刊有哪些?(计算机、信息方向) - 论文投稿 - 小木虫 - 学术 科研 互动社区...
- 2015广州强网杯 致敬经典
- 大数据可视化研究应用
热门文章
- nohup启动项目时报错:Unable to obtain lock on /xxxxxxxxx /AdminServer.lok. Server may already be running
- python的两种退出方式
- 永恒的伊甸园—宫崎骏的动画世界
- CSS元素的显示与隐藏
- [RK3399[NanoPC-T4][Android-Q]强调色
- python legend位置_matplotlib中legend位置调整解析
- Thrustmaster T16000M摇杆输入接口
- 随着计算机科学技术和互联网,(题文)下列各句中加点成语的使用,全都正确的一项是、①随着计算机科学技术和互联网技术的快速......
- mv argument list too long
- win10 linux uef系统,win10 uefi 模式装archlinux