【问题标题】:Are there conventional synonyms used to replace keywords reserved in programming languages?是否有用于替换编程语言中保留的关键字的常规同义词?
【发布时间】:2017-03-11 18:52:01
【问题描述】:

我所指的词的主要例子是“对象”、“价值”等。在许多(嗯,不是真的,但至少在某些情况下)情况下,您可能碰巧发现自己愿意命名一个你的变量等等。

我在实践中偶然发现的另一个例子是“try”,它代表异常处理中使用的关键字(在许多类 C 和其他语言中)和土耳其的货币。但这只是一个有趣的例子,我怀疑这种特殊情况是否存在任何已知的常见做法(尽管我觉得可能有前一种情况)。

在这种情况下人们会怎么做?在编程和数据建模上下文中合理的对象、值等的同义词有哪些?

例如,假设您正在开发一个对象数据库,操作对象、属性和值(而不是文档、字段和……嗯……值)出于某种原因是其哲学的关键思想,而您真的不想在语义上使用与这些词过于不同的词。你会用什么词来代替保留词,同时保持与他们的意思非常接近?

到目前为止,我想到的最简单的解决方案是使用“objekt”、“walue”等相同单词的拼写错误(或拼写不同的语言拼写)变体,但尽管这可以完成这项工作太让我恶心了,我真的不想接受这种方式。

更新:确实,在某些特定情况下(特定语言)使用不同的大小写(有时,这可能违反社区的大小写方面和/或公司命名约定)方式)和/或命名空间(几乎完全为此而引入)可以至少部分解决问题,但我仍然对替代方案感兴趣,因为我相信实际上复制系统关键字是至少应该考虑避免的事情(可能有一种方法可以轻松做到这一点,而无需接受被认为过于严重的妥协)在每种情况下。

我什至正在考虑编写脚本,通过 GitHub 来分析常见的代码元素命名词汇,但我认为先询问而不是“重新发明自行车”总是一个好主意,也许有人做过这样的事情已经。

更新2: 请帮我一个忙,并在投票结束之前考虑以下具有适用程度的客观性。恕我直言,我想强调的是,实际这个问题的主观性程度很低(尽管我承认,无论如何都略高于零)。它唯一真正的缺陷是它可能更适合the English site,但我相信 StackOverflow 的观众与上下文更相关(通常以更相关的方式了解)。发布这个问题的实际目的是突出一个相当容易理解并且不能否认存在的问题(尽管到目前为止它的重要性可能值得怀疑)但被提及的太少(作为代码清晰的重要性)并且语义相关性正在增加,恕我直言,代码作为一种媒体正在迅速朝着获得比书籍更大的文化(在这个词的广义上)重要性的方向发展。并让人们分享他们所知道的在实践中解决它的方法。

【问题讨论】:

  • 你能不能说得更具体一点,少一些固执己见?例如。在某些具有区分大小写关键字的语言中,人们使用例如object = new Object。如果您有收藏,请使用复数。如果您进行操作,请添加动词,如setObjectsset_objects 等。
  • 这个问题无疑会被关闭......但它很有趣,所以这是我常用的Java关键字避免名称列表:obj val cont priv pub dflt brk chr cls iface dbl flt imp inst lng fresh pkg prot impl ret thr trans
  • @le_m 您不应该删除您的答案,因为它在逻辑上是有效的答案(尽管对于某个问题,有些人可能看不到其中的理性、科学部分)。我会赞成它(如果没有更多有趣的答案出现,我会接受作为答案)。
  • @Ivan 基于你的 github 实验的命名流程图会很好:)

标签: naming-conventions computer-science keyword linguistics


【解决方案1】:

大写:通常,不同的大写而不是同义词可以解决问题,因为大多数语言关键字都区分大小写。例如。 object = new Object();

前缀/后缀:另一个经常遇到的解决方案是写myObject = new Object()。您选择哪一个实际上取决于您遵循的命名约定。对于私有类字段,一些开发人员使用下划线,例如this._object 表示私有访问修饰符。

规范:然而,在大多数情况下,您可以找到描述角色的更具体的词 - 例如 instanceparentchildargument - 或子类 -例如integern,而不是您的对象的通用数字数据类型。

除上述之外,许多语言社区都遵循事实上的约定,例如 cls 代表 Class,obj 代表 Object,meself 代表 this 等。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-20
    • 1970-01-01
    • 2014-11-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多