我只是想知道在团队中工作的人如何管理后端的逻辑和验证之间的关系,例如在php中,以及前端完全相同的逻辑和验证,例如在JavaScript中?
理想情况下,最后的说法应该由后端给出,但为了使应用程序更易于访问,最好使用JavaScript在前端尽可能模仿.我显然试图最大限度地减少代码重复,随着项目变得越来越大,我发现管理前端内容如何从后端的东西“复制”变得更加困难.危险在于,由于它们没有紧密耦合,有时前端验证可能与后端“不同步” – 特别是当有一个流氓JavaScript开发人员认为他们有更好的方法进行某些验证时!
有没有人有任何见解?
编辑
更简洁一点,我的问题实际上是关于人员团队在逻辑重复方面如何管理“papertrail”(或者前端如何按照Fanis的建议访问后端),而不是实际的实现.例如,您是否在后端代码中留下了“前端复制/访问此位”的注释,或者是否有更“专业”的方式来跟踪正在执行的操作?
解决方法:
实际使用数据的那个部分应该是具有最终发言权的部分,即后端,并且它应该具有最严格的验证规则.对我来说,前端验证是为了改善用户体验,以便用户在不等待页面重新加载的情况下获得有关输入错误的更快反馈.我会很好,前端有一小部分最通用的验证规则(即字段为空,格式错误的电子邮件地址等),并让后端做任何繁重的工作(例如重复条目检测).
但是,如果您需要对前端进行完整验证,请考虑以下事项:
>使后端的验证与任何表单提交逻辑分离
>设置一个单独的端点(API),它将接收数据,执行验证,并回显任何错误或“确定”
>让前端通过ajax将表单数据传递到该端点并返回任何错误以显示
>如果一切正常,那就让表格提交继续进行
这样,您的后端只有1份验证规则.
请注意,您将进行两次验证,如果它很昂贵(例如,在大型数据集上使用启发式重复检测),这可能是不可取的.如果没有找到错误,您可以通过在第一次验证期间将表单数据存储在用户的会话中来解决此问题.然后,当实际提交表单时,后端将不会重新验证它.
如果未启用javascript,这应该很好地降级.
标签:php,javascript,validation
来源: https://codeday.me/bug/20190518/1129255.html