返回介绍

例子:如何权衡多个备选名字

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

当你要选一个好名字时,可能会同时考虑多个备选方案。通常你要在头脑中盘算一下每个名字的好处,然后才能得出最后的选择。下面的例子示范了这个评判过程。

高流量网站常常用“试验”来测试一个对网站的改变是否会对业务有帮助。下面的例子是一个配置文件,用来控制某些试验:

每个试验由15对属性/值来定义。遗憾的是,当要定义另一个差不多的试验时,你不得不拷贝和粘贴其中的大部分。

假设我们希望改善这种情况,方法是让一个试验重用另一个的属性(这就是“原型继承”模式)。其结果是你可能会写出这样的东西:

问题是:the_other_experiment_id_I_want_to_reuse到底应该如何命名?下面有4个名字供考虑:

1.template

2.reuse

3.copy

4.inherit

所有的这些名字对我们来讲都有意义,因为是我们把这个新功能加入配置语言中的。但我们要想象一下对于看到这段代码却又不知道这个功能的人来讲,这个名字听起来是什么意思。因此我们要分析每一个名字,考虑各种让人误解的可能性。

1.让我们想象一下使用这个名字模板时的情形:

template有两个问题。首先,我们不是很清楚它的意思是“我是一个模板”还是“我在用其他模板”。其次,"template"常常指代抽象事物,必须要先“填充”之后才会变“具体”。有人会以为一个模板化了的试验不再是一个“真正的”试验。总之,template对于这种情况来讲太不明确。

2.那么reuse呢?

reuse这个单词还可以,但有人会以为它的意思是“这个试验最多可以重用100次”。把名字改成reuse_id会好一点。但有的读者可能会以为reuse_id的意思是“我重用的id是100”。

3.让我们再考虑一下copy。

copy这个词不错。但copy:100看上去像是在说“拷贝这个试验100次”或者“这是什么东西的第100个拷贝”。为了确保明确地表达这个名字是引用另一个试验,我们可以把名字改成copy_experiement。这可能是到目前为止最好的名字了。

4.但现在我们再来考虑一下inherit:

大多数程序员都熟悉"inherit"(继承)这个词,并且都理解在继承之后会有进一步的修改。在类继承中,你会从另一个类中得到所有的方法和成员,然后修改它们或者添加更多内容。甚至在现实生活中,我们说从亲人那里继承财产,大家都理解你可能会卖掉它们或者再拥有更多属于你自己的东西。

但是如果要明确它是继承自另一个试验,我们可以把名字改进成inherit_from,或者甚至是inherit_from_experiement_id。

综上所述,copy_experiment和inherit_from_experiment_id是最好的名字,因为它们对所发生的事情描述最清楚,并且最不可能误解。

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

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

发布评论

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