是否以"Do"符合某种标准

本文关键字:quot 标准 Do 是否 | 更新日期: 2023-09-27 18:15:20

由于某些原因,我的团队中的一些成员习惯以"Do"作为方法名的开头

public void DoReopenLeads()  
public void DoProcessBaloney()

现在,我是一个"边干边学"的人,没有接受过任何正式的代码培训,所以我不知道这是否是一个行业公认的编码标准。

在我看来,这似乎有点愚蠢,因为所有的方法都"做"这样或那样的事情。

我们团队的编码标准不包括如何命名方法(除了用相当清楚的英语说明函数的作用)

是否以"Do"符合某种标准

没有这样的标准。也许这就是当地的"风格"。如果在"Do"之后有几个相同单词的方法/函数,如PrepareProcess, LoadProcess, FinishProcess -则DoProcess将正常,则前缀"Do"可以使用。

没有任何定义要求每个方法必须以" Do "开头。

《Clean Code》(我喜欢并推荐Robert C. Martin的书)中关于命名方法的一个原则是你不应该为了知道函数做什么而去查看函数。所以命名必须传达意思。

方法应该是动词短语,因为它们实际对数据"做"一些事情。但是,用Do前缀开始所有方法只会添加无用的信息。更具体的可以更容易地完成"干净代码"的目标。

通常对于表示动作的方法,方法名以动词开头。"do"或"does"是助动词,很少添加意义。

顺便说一下,看看这个:c#编码约定

虽然这个话题有点反对,但我想分享一些我发现的软指南。

DoFactorys c#编码标准和命名约定只声明:

使用名词或名词短语来命名一个类

一个由Dennis Doomen维护的非常有用的AvSol c#指南说:

使用动词(如Show)或动词-对象对(如ShowDialog)命名方法。一个好的名字应该提示成员的是什么,如果可能的话,还要提示为什么。

也不要在方法名中包含And。这意味着方法正在做不止一件事,这违反了单一职责原则…

最后,没有这样的官方指导方针存在于石头上。您的工作空间和领域文化应该推动您创建自己的指导方针。

作为一个好的开始,我建议你阅读Eric Evans写的《领域驱动设计:处理软件核心的复杂性》。它包含了一个名为"通用语言"的部分,通过与你的领域专家和同事密切协商,它可以帮助你学习如何创建和发展你的共享语言。你的代码也可以遵循这种通用语言,这样你的代码库就可以讲述"故事"了。或者通过阅读用例。

关于UL的另一个很好的参考是由Andrew Whitaker写的,他写道:

拥有一种通用的语言可以提高代码库的一致性,并使每个人都在同一个页面上。