使用 did 作为布尔标志名称

Using did as boolean flag name

我将我的一个布尔参数命名为 didInfoChange

我团队中的许多人告诉我将其更改为 isInfoChanged,我不同意。这可能是因为我的团队成员的母语不是英语(我也不是),但我觉得 ifInfoChanged 是不对的。

didInfoChange -> Did information change? -> True/False

在我看来很明白

isInfoChanged -> is info changed?

听起来不太对劲。 为这个争吵可能没什么大不了的,但我做了一些搜索,人们并没有真正使用 did 作为标志名称。我同意 hasInfoChangedhasdid 基本上是同一件事。

我想知道为什么 did 不行?

这里有两个问题:

1)didInfoChangeisInfoChanged哪个更好?

英文单词"change"既可以是及物也可以是不及物,但是在这个语境下显然是"the info is changed""the info did change" 意思完全一样。 (在内涵上有细微的差别,但在这里并不重要。)两个名字的长度相同。除了风格约定外,似乎没有什么区别。

2)如果你的方法比他们的好,你该怎么办?

考虑你的行为的后果。

如果您有能力说服团队的其他成员免费使用您的变量名,那就去做吧。如果这样做会造成压力(例如,通过命令您的下属做他们认为是坏主意的事情),那么风格的改进可能不是团队动力的成本。

如果你不能说服他们,但你可以延长争论并阻止团队做建设性工作,那么......不要。使用他们的变量名。

如果你不能延长争论,但你可以通过争论让自己不受欢迎,那么......不要。使用他们的变量名。

除了 is 有时也允许使用 has 命名布尔 getter-methods,这取决于辅助动词将用于口语;我从未见过 did 作为布尔标识符的一部分。

使用 hasInfoChanged 时,您将保留分词结尾 (e)d。也许这会让您团队的其他成员感到满意。

infoChanged 可能会被误认为是 EventHandler-Delegate。

不幸的是,我也不是以英语为母语的人。