命名惯例中的撒克逊人基因?

问题描述 投票:5回答:4

[当名称包含撒克逊人的格言,例如“验证任务的优先级”和“更改参数的优先级”或“增加操作的延迟”时,您怎么称呼您的函数?

您是否删除撇号? verifyTasksPriority(), changeArgumentsPriority(), increaseActionsDelay()

您是否同时删除撇号和“ s”? verifyTaskPriority(), changeArgumentPriority(), increaseActionDelay()

您将撒克逊人的原语替换为“ of”吗? verifyPriorityOfTask(), changePriorityOfArgument(), increaseDelayOfAction()

我不喜欢第一个选项,因为它听起来像该函数可以在多件事上起作用,而不仅仅是一件事情。我不喜欢第二种选择,因为它听起来不自然。我不喜欢第三个选项,因为函数名称中的of一词听起来不正确。

您使用什么选项?

naming-conventions naming
4个回答
9
投票

我用第二个。对我来说听起来不错。将“任务优先级”视为一个复合词,例如“真空吸尘器”。


2
投票

我发现数字2和3对我来说听起来不错,并且具有描述性。我使用第二个选项。第一个选项可能会造成混淆,因为它似乎表明它对集合而不是单个项目进行操作(例如,用Tasks代替Task)。

但是,我不知道自己在做撒克逊人的泛型编程;我会立即将其添加到我的简历中。


2
投票

我不记得曾经感到需要立即使用它们中的任何一个。

[我主要使用OO语言编写OO代码,因此为了验证任务的优先级,您通常会使用task.verifyPriority()作为公共方法,尽管您通常会使用task.verify()

验证优先级可能涉及其他逻辑-如果任务的所有者是Bob,则优先级只能为7。将Bob的优先级7任务之一的所有者设置为Anna会使其不一致,但是更改所有者时会调用verifyOwner(),更改优先级时会调用verifyPriority(),即使它们具有相同的逻辑?

我发现降低API对实现细节的针对性会导致代码更具延展性。

在非OO语言中,我通常使用<library>_<Noun>_<Verb>,因此tman_task_verify ( task_t* self )验证任务管理器库中的任务对象以对其进行验证。


0
投票

这个老问题在寻找撒克逊人的某些细微之处时引起了我的注意。根据Wall Street English,萨克森人原语用于描述占有:

撒克逊族人用“ of”一词代替表示拥有。它的主要用于指代人拥有的事物,但也可以是用于动物,组织甚至某些时间表达。至创建撒克逊人所有格我们在名称中添加‘s例如:

这是约翰的车。 =这是约翰的车。

在同一页面上,我们发现以下内容:

何时不使用Saxon Genitive

我们通常不使用撒克逊宾语在这种情况下,我们更喜欢“ of”。例如:

房子的门。 (不是“房子的门”。)

笔的盖子。 (不是“笔盖”。)

路的尽头。 (不是“路的尽头”。)

通常来说,如果您不确定是否要使用撒克逊属格,使用'of'比较安全。

这意味着我们不会说任务的优先级操作的延迟。因此,应该完全消除第一种选择。

第三个选项在语法上是正确的,但听起来有些笨拙。

第二个选项使用compound nouns。如该页所述,构建复合名词的可能性很多,第一个是名词+名词

的组合
  • 卧室
  • 水箱
  • 摩托车
  • 打印机墨盒

我们还可以考虑计算机编程中使用的其他示例,例如:状态代码,设计模式,语法错误等。>

因此,第二种选择是要走的路。

由于我对命名约定非常着迷,所以我想分享我的发现并进一步支持先前的答案。

© www.soinside.com 2019 - 2024. All rights reserved.