布尔属性的命名约定

时间:2016-05-05 20:20:03

标签: ruby-on-rails ruby attributes naming-conventions

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

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

4 个答案:

答案 0 :(得分:21)

我想起来就像这样:

  • 布尔属性应该回答一个简单的是/否问题。
  • 问问"是?"问一个是/否问题的简单方法。
  • 因此布尔属性名称应该完成句子is <attribute_name>
  • 然后只需删除is,因为Ruby更喜欢&#34;&#34;样式方法名称的?后缀(请参阅下面的详细信息),只留下{{1} }

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

  • 从问题&#34开始;隐藏电子邮件&#34;?这可以在代码中表示为:email_hidden
  • 删除email_is_hidden,然后选择is
  • Ruby on Rails定义了一个&#34;谓词&#34;您的布尔属性的版本(以email_hidden结尾)并按预期返回? / true。因此,虽然您的属性在数据库中被命名为false,但为了清楚起见,您应该在代码中将其引用为email_hidden,并且Ruby on Rails约定也是如此。

答案 1 :(得分:2)

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

请注意最后的?

答案 2 :(得分:2)

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

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

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

答案 3 :(得分:2)

ruby​​代码涂抹说所有布尔方法应该用?

完成

在活动记录中,您可以看到

User.valid?

或者你可以找到红宝石

[].nil?
[].empty?

如果您想了解Ruby的惯例,请阅读

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