2011-04-14 78 views
5

我从前任雇主回味的是,他们两个之间区别如下:数据验证和验证有什么区别?

  • 验证是检查的数据是一个非常基本的意义上适当的过程;例如可以将日期字段中的数据转换为日期,或者可以将数字字段中的字符转换为适当类型的数字;
  • 验证是根据您在界面上施加的其他“商业”规则来检查类型化数据的过程 - 例如“出生日期”字段表示申请人在特定年龄范围内。

这些记忆不符合关于该主题的Wikipedia article,也不符合BBC BiteSize Revision article

那么什么是共识:当我检查Xml输入时,人们是否在乎什么方法和过程被调用?

我在做什么,当我:

  1. 检查日期字段包含可以转换为一个C#的DateTime字符;
  2. 检查DateTime是否存储在SQL Server中的适当日期范围内;
  3. 检查出生日期是指18岁以上65岁以下的客户吗?

回答

1

好了,我会以此为公开邀请沉思...

我觉得差异非常像编译时间与运行时错误。就像编译器能够告诉两个变量a,bdouble类型,并且因此表达式a/b是有效的,仅在运行期间,如果b结果为0,则可以提出DivideByZeroException

所以要完成比喻,可以验证一个字符串看起来像一个信用卡号码('编译时间'),但只能验证它是否对应于一个有效的卡只有当一个人试图收取信用卡( '运行时间'),金额为

Duh。所以我想我理解它很像你的老公司。

+0

行 - 所以我选择了你的答案,因为你同意我的看法:)如何选择讨论问题的答案? – Nij 2011-04-16 06:35:48

+0

@Nij真的。只有那些告诉你你想听到的人真的可以理解你:P无论如何,如果论坛像讨论是我们一些人所希望的那样......它从来没有发生过。只有3个答案。太糟糕了:( – bottlenecked 2011-04-16 07:29:20

0

在编程方面,它与你所说的(验证或验证)没有区别,但是你把逻辑放在哪里是很重要的。通常你提到的所有三个规则都被认为是验证,前两个点对应于UI验证,最后一点指向业务规则验证。我们通常在我们的控制器中使用数据注释来验证UI字段,并在业务层中执行业务规则验证。但从软件角度来看,底线是;除非数据正确(您称其为有效或已验证),否则不要执行操作(保存,编辑)。

+0

我想我的问题的一部分是为了找出别人是否会认为它很重要我称之为!有时候即使数据无效也必须加载数据;但没有希望到你的现场表! – Nij 2011-04-16 06:32:01

2

在我的词汇量,验证正在检查数据的格式是否正确,即,如果你实际处理的是一个正确格式化日期字符串。 验证正在检查您获得的日期是否实际上是您期待的日期。

+1

当你说你有一个你期待的约会时,你怎么知道会发生什么?你会在上面的BBC定义的旁边,这表明验证是重复输入和交叉检查他们的过程? – Nij 2011-04-16 06:38:42