gpt4 book ai didi

ruby-on-rails - 这些 Rails 3.1 验证中哪个更好?

转载 作者:数据小太阳 更新时间:2023-10-29 08:33:55 26 4
gpt4 key购买 nike

(A) 像这样:

  validates :network_id,              :numericality => true

validates :direct_url, :presence => true

validates :domain_name, :presence => true

validates :merchant_id, :numericality => true

validates :is_paid_merchant, :presence => true

validates :is_top_merchant, :presence => true

validates :last_months_revenue, :presence => true,
:numericality => true

validates :name, :presence => true,
:length => { :maximum => 50 }

validates :primary_category_id, :numericality => true

validates :url, :presence => true

validates :url_tag, :presence => true,
:length => { :maximum => 45 }

-或-

(B) 像这样:

  validates :network_id,
:merchant_id,
:last_months_revenue,
:primary_category_id, :numericality => true

validates :direct_url,
:domain_name,
:is_paid_merchant,
:is_top_merchant,
:last_months_revenue,
:name,
:url,
:url_tag, :presence => true

validates :name, :length => { :maximum => 50 }

validates :url_tag, :length => { :maximum => 45 }

在第一种情况下,每个字段都有自己的验证子句,在第二种情况下,它基于正在验证的内容(具有多次验证的字段出现多次)。第一个案例也是按字母顺序排列的,因此有助于直接跳转到特定字段。

-或-

(C) 我是否对我的代码的阅读和外观过于执着?

最佳答案

我认为第一种风格更好,原因如下:

在处理验证(或编辑验证)或为该字段添加新验证时,您很可能“记住”了一个特定的字段名称。因此,一个列出每个字段然后对每个字段进行所有验证的系统可以很好地阅读。

另一种风格 - 将验证分组在一起往往会导致在一个地方看到一个字段,但随后必须搜索并滚动以查找该字段的其他验证 - 并且您很可能看不到或不知道另一个该字段的验证可能在“屏幕外”,因此错过了。

这在最初构建应用程序时可能也没什么大不了的(当第一种样式实际上看起来更容易时)但是当您添加或删除或更改字段和验证时(即“在现实世界中构建应用程序” !') 如果对给定字段的所有验证都放在一起,将会更容易且更不容易出错。

为什么 B) 不好的另一个例子...想象一下:

  validates :network_id,
:merchant_id,
:last_months_revenue,
:primary_category_id, :numericality => true

validates :network_id,
:direct_url,
:domain_name,
:merchant_id,
:url,
:url_tag, :presence => true

validates :network_id :uniqueness => true

看看字段是如何到处重复的?现在想象一下删除 network_id - 哎呀!现在想象一下添加另一个需要数字、唯一性和存在性的 _id 字段 - 哇!

另一个例子 - 人们可能会想(好吧,我很久以前就做过),我将把所有“必需的”组合在一起,然后为它们添加一个很好的评论,然后是所有的唯一性,以及一个评论标题标签所有这些,等等。所以开发人员可以遵循一个“标准”。像这样的方法(除了之前的评论)的问题在于,这是一个“本地”标准,其他程序员(当前和 future )将需要理解然后......希望......遵循。尽管我自己很喜欢它们,但除非经过深思熟虑,否则像这样的个人标准通常会导致技术债务。

关于ruby-on-rails - 这些 Rails 3.1 验证中哪个更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7952972/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com