在我的应用程序中,我们有可以相互执行操作的用户 – 比如在Facebook上戳. 我刚才正在编写这些方法,并不确定采用哪种方法. 我的意思是,我知道它们都是可以接受的但是有更惯用的方法
我刚才正在编写这些方法,并不确定采用哪种方法.
我的意思是,我知道它们都是可以接受的但是有更惯用的方法吗?
选项1
if @current_user.may_poke?(@other_user) @current_user.poke!(@other_user) end
选项2
if @current_user.may_poke?(@other_user) @other_user.poke!(@current_user) end
第一个选项用英语读得更好,几乎完美地用作句子.
第二个选项在方法命名方面更有意义,“poke”是在@other_user上执行的方法. @current_user只是一个提供额外信息的参数 – 谁做了戳.
另外,作为Ruby的作者,matz表示“爆炸[感叹号]标志意味着”爆炸版本比非爆炸版更危险;小心轻放”.” (http://www.ruby-forum.com/topic/176830#773946).我可能只是用poke代替那个方法名称而不是戳!