【问题标题】:Should variable names have adjectives before or after the noun? [closed]变量名应该在名词之前还是之后有形容词? [关闭]
【发布时间】:2016-04-08 16:09:20
【问题描述】:

我发现我的变量命名约定经常有点不一致,我只是想知道人们认为什么是最好的方法。我所说的具体约定是当一个变量需要用名词和形容词来描述时,以及形容词应该出现在名词之前还是之后。这个问题在所有编程语言中都很普遍,尽管我个人使用 C++ 和 Python。

例如,考虑编写一个有两个按钮的 GUI;一个在右边,一个在左边。我现在需要创建两个变量来存储它们。一种选择是在名词前加上形容词,称它们为left_buttonright_button。另一种选择是在名词后面加上形容词,称它们为button_leftbutton_right。对于第一种情况,大声朗读更有意义,因为在英语中,您总是将形容词放在名词之前。但是,对于第二种情况,它有助于在语义上结构化数据,因为button 揭示了有关变量的最多信息,而leftright 是补充信息。

那你怎么看?形容词应该出现在名词之前还是之后?还是完全主观?

【问题讨论】:

  • 我很想听听其他人对这个话题的看法...... FWIW,我倾向于认为一致性比约定更重要;最坏的情况是left_button 旁边是button_right...
  • 就个人而言,我倾向于在名词之后使用形容词,例如。 button_left。如果我想添加这个属性,我会在最后添加这个,例如button_left_width。大声说出来听起来很奇怪,但在阅读代码时更容易理解。
  • @Karnivaurus 我在名词之后也使用形容词,因为在 inteli 意义上更容易找到正确的,尤其是当它们很多时。通过键入按钮,您将获得过滤后的变量列表,您可以看到您声明了哪些按钮。我正在使用 Qt-Creator。
  • 很好的问题,但不幸的是基于意见。
  • 类似问题,但在软件工程 SE 中:softwareengineering.stackexchange.com/q/347944/64166

标签: python c++ naming-conventions


【解决方案1】:

我尝试使用noun_adj,因为它符合我用于函数的内容。当我编写函数时,我倾向于使用verb_noun_adj,例如:

def get_button_id():
    """Get id property of button object."""
    pass

这对我来说比get_id_button 读得更清楚一些,因为你在这里得到的并不完全清楚:是得到button.id 还是得到一个名为'id' 的按钮,或者甚至是别的什么?除非您将名称扩展得更清楚一点,例如 get_id_of_button,这对您来说可能有点过于冗长。

可能有一个同样有效的论点反对我在这里所做的事情,但至少我的疯狂是一致的?

【讨论】:

  • 疯了?你说的是理智吗?顶你! ;)
  • 你说verb_noun_adj的一个例子是get_button_id,但get_button_id实际上是verb_adj_noun的一个例子。名词不是button,名词是id。该函数得到一个id。什么样的id?这由形容词button 描述。该函数得到一个buttonid。所以verb_noun_adj 的示例实际上是get_id_button,这是一种误导。该函数没有获得button 对象,而是获得了id 属性。这就是为什么形容词应该放在名词之前的原因,就像在英语中一样。
【解决方案2】:

我认为在名词之前写形容词是更常见的事情。但是,如果您仔细考虑一下,在阅读代码时将其写在名词之后会更容易。形容词很容易被视为名词的属性。在逻辑思维方式上,我认为这是更好的方式。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-30
    • 2019-10-24
    • 2012-11-11
    • 1970-01-01
    相关资源
    最近更新 更多