数据验证:快速失败、早期失败与完整验证

Viv*_*ath 4 validation fail-fast-fail-early

关于数据验证,我听说选项是“快速失败、早期失败”或“完全验证”。第一种方法在第一个验证错误时失败,而第二种方法则建立失败列表并呈现它。

我想在服务器端和客户端数据验证的上下文中对此感到好奇。哪种方法适合什么情况,为什么?

我个人对客户端数据验证的偏好是第二种方法,它通知用户所有失败的约束。我没有足够的知识来对服务器端发表意见,尽管我认为这取决于所涉及的业务逻辑。

Gre*_*ind 5

造成这种情况的部分原因是人们没有将正交性作为标准的一部分进行讨论。“早期失败”很有用,可以在错误发生的地方捕获错误,而不是在下游捕获错误。但对于正交故障,没有下游或多个下游。

例如,大多数用户表单都填写了许多独立的问题,例如用户名、密码、电子邮件等。由于它们是独立的,因此请等到所有 3 个都到达后,立即描述所有错误。让用户经历三个提交-检查-投诉周期是荒谬的。