Bot*_*oti 12 ruby ruby-on-rails naming-conventions
通常,当我给我的班级命名时,我会使用名词.我给出了一个来自动词的名词,比如' worker '或' buyer '作为我的服务对象的名字.在代码审查期间,据说通常将动词作为服务对象的名称,例如" 工作 "" 购买 ".
我应该遵循哪个方向?
这是另一个反对动词的意见:
大多数情况下,从清晰度和自然语言的角度来看,使用动词是没有意义的.假设您有型号产品,并且您想要一个服务对象来处理某些复杂标准(地理位置,颜色,运输,月相等)的定价.它将是服务对象ProductPricingService的一个很好的候选者.你不会只称它为价格或定价.首先,它是暧昧的.定价什么?你卖的产品?您从供应商处获得的定价?天然气定价今天?如果你认为许多模型可以使用这个服务对象,那么你就是在破坏服务对象的目的.我当然夸大了.但重点是创建清晰且可维护的代码.因此,虽然您可以通过将其命名为Price来节省一些击键,但是如果您将其命名为ProductPricingService,则对于另一个人(以及您在5个月内)更明确.
这是针对deverbal名词的观点
您可以使用InvoiceFinder而不是FindInvoice之类的东西,但我发现将动作放在最后导致了笨拙的命名类,因此将动词放在开头会使它们更清晰.