There are only two hard things in Computer Science: cache invalidation and naming things.
计算机科学中只有两件事很难:缓存失效和命名。
— Phil Karlton

好的命名

好的命名是“看其名而知其意”。

直白的,有意义的

好的命名是易于理解的,也就是直白的,有意义的。比如:fetchUserInfo。

推荐阅读:故宫命名法

遵循行业惯例

好的命名也应该遵循行业的习惯惯例。如:业界惯例 id 作为唯一标识命名,不要用 identifier。i、j、k 用来做循环计数变量命名。

符合代码风格

好的命名应该符合当前项目的代码风格。如:驼峰风格等。

下面说一些不好的命名。

不好的命名

无意义的名字

如:foo, bar。

太过抽象的名字

如:data,res,temp,tools。

会有歧义的简称

如:mod。你可能无法确认到底是 mode 或 module。

不必要的上下文信息

  1. // bad
  2. function async getUserName (userId) {
  3. const userName = await fetchUser(userId)
  4. return userName
  5. }
  6. // good
  7. function async getUserName (id) {
  8. const name = await fetchUser(id)
  9. return name
  10. }

太长的名字

太长的名字,不容易理解。如:fetchGraintYoungestBoyName。优化方式,将不重要内容省略掉,如改成:fetchBoyName。

命名参考工具

CODELF

帮你搜索 Github、GitLab 等网站中,你想查找的内容的不同命名。
image.png

参考文档