ruby / rails布尔方法命名约定

Den*_*nis 3 ruby methods ruby-on-rails naming-conventions

我对ruby / rails方法的命名约定或良好实践有一个简短的问题。请考虑以下方法:

# some methods performing some sort of 'action'
def action; end
def action!; end

# some methods checking if performing 'action' is permitted
def action?; end
def can_action?; end
def action_allowed?; end
Run Code Online (Sandbox Code Playgroud)

因此,我想知道,三种“与”方法中的哪一种是寻求许可的“最佳”方法。我会以某种方式选择第一个,但是在某些情况下,我认为这可能与含义混淆has_performed_action?。因此,第二种方法可能使这一点更清晰,但也有些冗长。第三个实际上只是为了完整性。我真的不喜欢那个。

那么,有没有为此达成共识的良好做法?

Pan*_*kos 5

我认为这取决于您要执行的操作和要检查的操作。我的目标是提高可读性,减少混乱的程度:

self.run
self.can_run? # can this object run?
self.running_allowed? # is running allowed here or by this user?

self.redeem!
self.redeemable? # is this object currently redeemable?

self.copy_to_clipboard
self.copy_to_dashboard
self.copyable? or self.can_be_copied? #can this object be copied
self.copy_allowed?(:clipboard) # is copying to the clipboard allowed by me?
Run Code Online (Sandbox Code Playgroud)