开源最前线(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!程序员专属的命名宝典来了相关推荐

  1. GitHub标星百万的程序员转架构之路,竟被阿里用作内部晋升参考

    架构师是很多程序员的奋斗目标,也可以说是职场生涯的一个重要选择方向,今天我就跟大家聊一聊如何从一个程序员成长为一个架构师. 首先我们先来看看架构师的定义到底是什么? 系统架构师是一个不仅需要主持整体又 ...

  2. Github标星24.9k!适合初学者的有趣、入门级的开源项目

    本文推荐一个标星24.9k的GitHub上有趣.入门级的开源项目:HelloGitHub.内容包括:流行项目.入门级项目.让生活变得更美好的工具.书籍.学习心得笔记.企业级项目等,这些开源项目大多都是 ...

  3. 卧槽!GitHub标星7.9K star,抢茅台酒脚本竟然开源了!网友:已抢到,真香!

    点击上方"Github爱好者社区",选择星标 回复"资料",获取小编整理的一份资料 作者:GG哥 来源:GitHub爱好者社区(github_shequ) 这是 ...

  4. GitHub 标星 4.9k,李笑来开源的英语学习课

    我记得有一次,有个读者私信我说,"哥,外企对英语的要求高吗?明年毕业后我打算去外企应聘."当时我听完脑袋一阵嗡嗡作响,我在想,这个问题它就不应该成立啊! 即便是不去外企,对于我们程 ...

  5. B站收藏 6.1w !GitHub 标星 3.9k !这门神课拯救了我薄弱的计算机基础

    作者 |  Rocky0429 来源 |  Python空间 注:之前就一直强调计算机基础的重要性,今天给你们搜索了相应的课程 大家好,我是 Rocky0429,一个对计算机基础一无所知的蒟蒻... ...

  6. (GitHub标星6.9k)超详细的人工智能专家路线图,

    这个学习路线图几乎涵盖了人工智能领域的所有内容,点点鼠标,就能链接所需知识. 机器之心报道,机器之心编辑部. 原文链接:https://zhuanlan.zhihu.com/p/273580093 想 ...

  7. GitHub 标星 2.3k+,比个手势,AI 自动识别 Emoji!

    关注 "GitHubDaily" 设为 "星标",每天带你逛 GitHub! 转自量子位,作者圆栗子 一只手势识别 AI,怎样才算得上 (优) 秀啊? 不停地变 ...

  8. Github标星的Chrome 插件,开发者必备

    Github标星的Chrome 插件,开发者必备 对于web工程师来说,Chrome已经是Web开发中使用最多的浏览器,然而各种各样的Chrome插件层出不穷,成为web工程师的尖锐武器. [mark ...

  9. python123判断火车票座位号分布图_面向回家编程!GitHub标星两万的Python抢票教程”,我们先帮你跑了一遍...

    原标题:面向回家编程!GitHub标星两万的"Python抢票教程",我们先帮你跑了一遍 大数据文摘出品 作者:曹培信.池俊辉 盼望着,盼望着, 春节的脚步近了, 然而,每年到这个 ...

最新文章

  1. 分析数据时,一定要避开这5大误区!
  2. SSH整合中,使用父action重构子类action类.(在父类中获取子类中的泛型对象)
  3. 基于深度卷积神经网络的目标检测研究综述
  4. 【Android进阶】Junit单元測试环境搭建以及简单有用
  5. 【RMQ问题】求数组区间最大值,NYOJ-1185-最大最小值
  6. java实验6 词频统计_Java实现的词频统计——单元测试
  7. poj-3176 Cow Bowling poj-1163 The Triangle hihocoder #1037 : 数字三角形 (基础dp)
  8. 使用Java调用默认浏览器打开指定网址
  9. <<道 德 经>>------老子
  10. DSP程序中常出现的EINT、DINT、ERTM、DRTM、EALLOW、EDIS的理解
  11. 手把手写深度学习(3)——用RNN循环神经网络自动生成歌词之理论篇
  12. 【LTE学习日记01】子载波功率与信道功率的换算
  13. linux怎么把dos改成unix_如何将文本文件在 Unix和DOS格式之间转换
  14. 深度学习|费解的tensorflow
  15. 酒店管理系统的设计与实现/酒店客房管理系统/酒店预定系统
  16. 自动延时关机电路分析
  17. 为什么女性朋友容易患上拇外翻?
  18. ei检索计算机科学与应用,国内EI检索的期刊有哪些?(计算机、信息方向) - 论文投稿 - 小木虫 - 学术 科研 互动社区...
  19. 2015广州强网杯 致敬经典
  20. 大数据可视化研究应用

热门文章

  1. nohup启动项目时报错:Unable to obtain lock on /xxxxxxxxx /AdminServer.lok. Server may already be running
  2. python的两种退出方式
  3. 永恒的伊甸园—宫崎骏的动画世界
  4. CSS元素的显示与隐藏
  5. [RK3399[NanoPC-T4][Android-Q]强调色
  6. python legend位置_matplotlib中legend位置调整解析
  7. Thrustmaster T16000M摇杆输入接口
  8. 随着计算机科学技术和互联网,(题文)下列各句中加点成语的使用,全都正确的一项是、①随着计算机科学技术和互联网技术的快速......
  9. mv argument list too long
  10. win10 linux uef系统,win10 uefi 模式装archlinux