If 条件命名约定

If condition naming convention

我有一个布尔函数来检查 scandata 键是否有效。我将其命名为:

areScandataKeysValid()

对于命名约定,它应该命名为 isScandataDataKeysValid() 还是像我上面那样命名?。在 Clean Code 书中,我只看到 is 版本的示例。所以,我很困惑哪个有意义?在语法上,“”是肯定的。

isName() 约定是 JavaBeans 标准的一部分,适用于布尔值属性。

  • 如果您的 API 不需要与 JavaBeans 兼容,您可以忽略该约定。

  • 如果您检查扫描键的方法不打算用作 "property" 的 getter,则 isName() 约定不适用。

我同意你对 areScandataKeysValid 的偏好,而不是 isScandataKeysValid,因为语法不一致。还有其他选择需要考虑;例如

  • hasValidScandataKeys 用于谓词,或
  • validateScandataKeyscheckScandataKeys 对于(通常)抛出异常以指示无效的方法。

我不知道有任何支持上述任何一种的约定俗成的文档(即风格指南)。 (没有说 "good grammar" 是必不可少的。)

底线:您的选择。

我认为"is"或"are"是多余的。最重要的是谓词函数有一个形容词作为最后一个词。因此,我将方法命名为 scanDataKeysValid,或者如果从 class 的上下文中可以清楚地看出,则简单地命名为 keysValid.