有哪些系统可以管理后端和前端逻辑/验证?

boa*_*cow 5 javascript php validation

我只是想知道在团队中工作的人如何管理后端的逻辑和验证之间的关系,例如在php中,以及前端完全相同的逻辑和验证,例如在JavaScript中?

理想情况下,最后的说法应该由后端给出,但为了使应用程序更易于访问,最好使用JavaScript在前端尽可能多地模仿.我显然试图最大限度地减少代码重复,随着项目变得越来越大,我发现管理前端内容如何从后端的东西"复制"变得更加困难.危险在于,由于它们没有紧密耦合,有时前端验证可能与后端"不同步" - 特别是当有一个流氓JavaScript开发人员认为他们有更好的方法进行某些验证时!

有没有人有任何见解?

编辑

更简洁一点,我的问题实际上是关于人员团队在逻辑重复方面如何管理"papertrail"(或者前端如何按照Fanis的建议访问后端),而不是实际的实现.例如,您是否在后端代码中留下了"前端复制/访问此位"的注释,或者是否有更"专业"的方式来跟踪正在执行的操作?

Fan*_*nis 4

实际使用数据的部分应该是后端说了算,并且应该有最严格的验证规则。对我来说,前端验证是为了改善用户体验,以便用户更快地获得有关其输入错误的反馈,而无需等待页面重新加载。我同意前端拥有一小部分最通用的验证规则(即字段为空、格式错误的电子邮件地址等),并让后端完成任何繁重的工作(例如重复条目检测)。

但是,如果您需要对前端进行全面验证,请考虑以下内容:

  • 使后端的验证与任何表单提交逻辑解耦
  • 设置一个单独的端点(API),它将接收数据、执行验证并回显任何错误或“ok”
  • 让前端通过 ajax 将表单数据传递到该端点并返回任何错误以显示
  • 如果一切正常,则继续提交表单

这样,您的后端就只有一份验证规则副本。

请注意,您将进行两次验证,如果成本高昂(即在大型数据集上使用启发式方法进行重复检测),那么这可能是不可取的。如果没有发现错误,您可以通过在第一次验证期间将表单数据存储在用户会话中来解决这个问题。然后,当表单实际提交时,后端将不会重新验证它。

如果未启用 javascript,这应该会很好地降低性能。