布尔属性的命名约定
我想编写其他人也很容易理解的代码。
hide_email
或email_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社区习惯的。
请注意?
在末尾。