布尔属性的命名约定

我想编写其他人也很容易理解的代码。

hide_emailemail_hidden这样的布尔属性email_hidden具有约定风格?

我想起来像这样:

  • 布尔属性应该回答一个简单的是/否问题。
  • 问“是吗?” 问一个是/否问题的简单方法。
  • 所以布尔属性名称应该完成句子is
  • 然后只是删除is因为Ruby更喜欢? “is”式方法名称的后缀(详见下文),只留下email_hidden

因此,针对您的具体情况,请将您的属性命名为:

  • 从问题“电子邮件被隐藏”开始? 这可以在代码中表示为: email_is_hidden
  • 删除is ,你留下了email_hidden
  • Ruby on Rails定义了一个布尔属性的“谓词”版本(以一个?结尾? ),并按预期返回true / false 。 那么,虽然您的属性在数据库中被命名为email_hidden ,但您应该将其引用为email_hidden? 在代码中为了清晰起见,以及Ruby on Rails约定。

ruby代码涂抹说所有布尔方法应该完成?

在活动记录上你可以看到

 User.valid? 

或者你可以找到ruby

 [].nil? [].empty? 

如果您想了解Ruby的约定,请阅读此内容

http://blogs.visoftinc.com/2010/04/12/ruby-beauty-method-naming-conventions/

以你给出的这两个名字为例:

  • hide_email对于执行此类任务的方法来说是一个很好的名称,该方法执行所有过程以隐藏系统范围内的电子邮件。 但对于返回电子邮件状态的布尔方法,它永远不会是一个好名字。
  • email_hidden? ,在末尾带有问号(?),将是布尔方法的正确名称,指示电子邮件是否隐藏。

如果你真的想写好代码,请始终考虑Ruby约定。 即使在考虑系统中的过程时,它们也会帮助您。

那将是email_hidden? 。 这是Ruby社区习惯的。

请注意? 在末尾。