返回介绍

名字应该有多长

发布于 2024-08-18 11:54:29 字数 2232 浏览 0 评论 0 收藏 0

当选择好名字时,有一个隐含的约束是名字不能太长。没人喜欢在工作中遇到这样的标识符:

名字越长越难记,在屏幕上占的地方也越大,可能会产生更多的换行。

另一方面,程序员也可能走另一个极端,只用单个单词(或者单一字母)的名字。那么如何来处理这种平衡呢?如何来决定是把一变量命名为d、days还是days_since_last_update呢?

这是要你自己要拿主意的,最好的答案和这个变量如何使用有关系,但下面还是提出了一些指导原则。

在小的作用域里可以使用短的名字

当你去短期度假时,你带的行李通常会比长假少。同样,“作用域”小的标识符(对于多少行其他代码可见)也不用带上太多信息。也就是说,因为所有的信息(变量的类型、它的初值、如何析构等)都很容易看到,所以可以用很短的名字。

尽管m这个名字并没有包含很多信息,但这不是个问题。因为读者已经有了需要理解这段代码的所有信息。

然而,假设m是一个全局变量中的类成员,如果你看到这个代码片段:

这段代码就没有那么好读了,因为m的类型和目的都不明确。

因此如果一个标识符有较大的作用域,那么它的名字就要包含足够的信息以便含义更清楚。

输入长名字——不再是个问题

有很多避免使用长名字的理由,但“不好输入”这一条已经不再有效。我们所见到的所有的编程文本编辑器都有内置的“单词补全”的功能。令人惊讶的是,大多数程序员并没有注意到这个功能。如果你还没在你的编辑器上试过这个功能,那么请现在就放下本书然后试一下下面这些功能:

1.键入名字的前面几个字符。

2.触发单词补全功能(见下表)。

3.如果补全的单词不正确,一直触发这个功能直到正确的名字出现。

它非常准确。这个功能在任何语种的任何类型的文件中都可以用。并且它对于任何单词(token)都有效,甚至在你输入注释时也行。

首字母缩略词和缩写

程序员有时会采用首字母缩略词和缩写来命令,以便保持较短的名字,例如,把一个类命名为BEManager而不是BackEndManager。这种名字会让人费解,冒这种风险是否值得?

在我们的经验中,使用项目所特有的缩写词非常糟糕。对于项目的新成员来讲它们看上去太令人费解和陌生,当过了相当长的时间以后,即使是对于原作者来讲,它们也会变得令人费解和陌生。

所以经验原则是:团队的新成员是否能理解这个名字的含义?如果能,那可能就没有问题。

例如,对程序员来讲,使用eval来代替evaluation,用doc来代替document,用str来代替string是相当普遍的。因此如果团队的新成员看到FormatStr()可能会理解它是什么意思,然而,理解BEManager可能有点困难。

丢掉没用的词

有时名字中的某些单词可以拿掉而不会损失任何信息。例如,Convert To String()就不如To String()这个更短的名字,而且没有丢失任何有用的信息。同样,不用DoServeLoop(),ServeLoop()也一样清楚。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文