[当名称包含撒克逊人的格言,例如“验证任务的优先级”和“更改参数的优先级”或“增加操作的延迟”时,您怎么称呼您的函数?
您是否删除撇号? verifyTasksPriority(), changeArgumentsPriority(), increaseActionsDelay()
您是否同时删除撇号和“ s”? verifyTaskPriority(), changeArgumentPriority(), increaseActionDelay()
您将撒克逊人的原语替换为“ of”吗? verifyPriorityOfTask(), changePriorityOfArgument(), increaseDelayOfAction()
?
我不喜欢第一个选项,因为它听起来像该函数可以在多件事上起作用,而不仅仅是一件事情。我不喜欢第二种选择,因为它听起来不自然。我不喜欢第三个选项,因为函数名称中的of一词听起来不正确。
您使用什么选项?
我用第二个。对我来说听起来不错。将“任务优先级”视为一个复合词,例如“真空吸尘器”。
我发现数字2和3对我来说听起来不错,并且具有描述性。我使用第二个选项。第一个选项可能会造成混淆,因为它似乎表明它对集合而不是单个项目进行操作(例如,用Tasks代替Task)。
但是,我不知道自己在做撒克逊人的泛型编程;我会立即将其添加到我的简历中。
我不记得曾经感到需要立即使用它们中的任何一个。
[我主要使用OO语言编写OO代码,因此为了验证任务的优先级,您通常会使用task.verifyPriority()
作为公共方法,尽管您通常会使用task.verify()
。
验证优先级可能涉及其他逻辑-如果任务的所有者是Bob,则优先级只能为7。将Bob的优先级7任务之一的所有者设置为Anna会使其不一致,但是更改所有者时会调用verifyOwner()
,更改优先级时会调用verifyPriority()
,即使它们具有相同的逻辑?
我发现降低API对实现细节的针对性会导致代码更具延展性。
在非OO语言中,我通常使用<library>_<Noun>_<Verb>
,因此tman_task_verify ( task_t* self )
验证任务管理器库中的任务对象以对其进行验证。
这个老问题在寻找撒克逊人的某些细微之处时引起了我的注意。根据Wall Street English,萨克森人原语用于描述占有:
撒克逊族人用“ of”一词代替表示拥有。它的主要用于指代人拥有的事物,但也可以是用于动物,组织甚至某些时间表达。至创建撒克逊人所有格我们在名称中添加‘s例如:
这是约翰的车。 =这是约翰的车。
在同一页面上,我们发现以下内容:
何时不使用Saxon Genitive
我们通常不使用撒克逊宾语在这种情况下,我们更喜欢“ of”。例如:
房子的门。 (不是“房子的门”。)
笔的盖子。 (不是“笔盖”。)
路的尽头。 (不是“路的尽头”。)
通常来说,如果您不确定是否要使用撒克逊属格,使用'of'比较安全。
这意味着我们不会说任务的优先级或操作的延迟。因此,应该完全消除第一种选择。
第三个选项在语法上是正确的,但听起来有些笨拙。
第二个选项使用compound nouns。如该页所述,构建复合名词的可能性很多,第一个是名词+名词:
的组合
- 卧室
- 水箱
- 摩托车
- 打印机墨盒
我们还可以考虑计算机编程中使用的其他示例,例如:状态代码,设计模式,语法错误等。>
因此,第二种选择是要走的路。
由于我对命名约定非常着迷,所以我想分享我的发现并进一步支持先前的答案。