2010-04-02 67 views
2

关于数据验证,我听说选项是“快速失败,提前失败”或“完全验证”。第一种方法在第一次验证错误时失败,而第二种方法建立失败列表并显示它。数据验证:快速失败,早期失败与完全验证

我很想知道在服务器端和客户端数据验证的背景下。在什么情况下适用哪种方法,为什么?

我个人对于客户端数据验证的偏好是告知用户所有失败约束的第二种方法。我没有足够的信息对服务器端有任何意见,尽管我可以想象它取决于涉及的业务逻辑。

回答

4

这是令人困惑的部分原因是人们不会将正交性作为标准的一部分来讨论。 “失败提前”是有用的,这样错误就会发生,而不是下游。但是对于正交失败,没有下游或多个下游。

例如,大多数用户表单都充满了大量独立问题,例如用户名,密码,电子邮件等。由于他们是独立的,请等到所有3个到达,并立即描述所有错误。使用户经历三次提交 - 检查 - 投诉循环是荒谬的。

+0

谢谢!这解释得很好。 – 2010-04-03 19:38:04

+0

我很高兴你发现它有帮助! – 2010-04-06 12:29:14

2

对于琐碎的错误,如无效输入或缺失数据,取决于您想为系统创建用户的方便程度。例如,如果有人将完整的数据电子表格导入到系统中,并且第一行失败,并且您说“第一行失败”,这可能非常烦人。用户修复第一行,导入并获取消息“第二行失败”。想象一下,有65536行。你已经知道你不会对数据做任何事情,但是你想让用户的生活更轻松吗?再次,这些是我正在讨论的错误的错误,当然您将设计一个系统,在处理之前验证所有数据。

对于更严重的错误,要么您不期望或不仅仅是验证问题,请恢复为快速且难以处理的错误