这个 6500 Star 的手册帮你解决命名难的问题

共 1651字,需浏览 4分钟

 ·

2021-02-23 17:25

命名是一件很困难的事情,naming-cheatsheet 是一个命名备忘录,记录一些常见的规范约定,试图让命名变得更容易。接下来我们就来介绍下 naming-cheatsheet 提到的一些规范约定。


使用英语

/* Bad */
const primerNombre = 'Gustavo'
const amigos = ['Kate''John']

/* Good */
const firstName = 'Gustavo'
const friends = ['Kate''John']

不管你喜不喜欢,英语都是编程中的主要语言,几乎所有的编程语言的语法都是用英语编写的,以及无数的文档和教材也是。通过英语编写代码,可以大大提高其通用性。对于我们国内开发者来说,一定要避免拼音甚至是直接的中文命名。

命名约定

选择一种命名的约定风格,并严格遵守它,可以是 camelCaseParscalCasesnake_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

SID原则

命名应该简短直观并且具有描述性

  • Short:简短,避免输入太长;
  • Intuitive:直观,命名必须自然地阅读,并且尽可能接近自然语言;
  • Descriptive:以最有效的方式反映其作用或目的。
/* 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 

/* Good */
const isDisabled = itemCount <= 3
return 

更多命名规范可以参考项目:https://github.com/kettanaito/naming-cheatsheet



浏览 39
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报