web前端与后端分离的架构实例分析

技术web前端与后端分离的架构实例分析本篇内容主要讲解“web前端与后端分离的架构实例分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“web前端与后端分离的架构实例分析”吧

本文主要讲解“web前端与后端分离的架构实例分析”。感兴趣的朋友不妨看看。本文介绍的方法简单、快速、实用。让边肖带你学习《web前端与后端分离的架构实例分析》!

一、关于前端的 dataProvider

简单地说,它是接口调用的数据访问层。很多人都有这个疑问。这里没有必要增加数据访问层吗?只要做前端,就会遇到以下问题:

1.对于一个产品或项目,前端和后端是同时进行的。此时根本没有后端接口,甚至没有接口的定义。作为一个前端开发人员,你是如何做好自己的工作的?

2.作为一个前端开发人员,有没有遇到过因为后端接口挂机而导致工作无法继续的情况?

3.作为一个前端开发人员,不可避免的要连接第三方接口。你有没有遇到过和你连接的人,因为项目紧张突然被带走,只剩下一堆需要传输的N个参数,然后“对象为空”的异常就出来了?你不知道参数错在哪里。面对这些接口,除了骂人,你得不到任何帮助。

4.作为一个前端开发人员,你有没有试过向后端开发团队要一个接口?他们需要讨论几天,然后还需要几天才能给你。给你之后就不能用了,还要几天调试?

如果你像我一样,以前遇到过这些问题,你不会怀疑这个数据提供者的必要性。有了这个数据提供器,你可以减少后端接口对前端开发的影响。下面是一个数据提供者的例子:

vardata provider=(function(){ varfakeProvider={ countries : newcounters()};varreal provider={ countries : newjdata。webdata source()};//下面的界面,根据情况选择returnfakeProvider之一;//这是一个假的数据提供者。在本地读取returnrealProvider//这是真正的数据提供者,从接口读取})();从上面可以看出,这个数据提供程序是使用工厂模式创建的。它有两个实例,fakeProvider和realProvider。fakeProvider用于提供一些模拟数据,而realProvider则提供从接口读取的数据。当没有接口,或者接口挂起时,我们可以先从fakeProvider读取数据。当接口准备好了,切换到realProvider。

二、关于用户界面输入的验证

1.数据验证。在用户界面中输入数据后,再调用dataProvider中的接口来处理数据,但是在提交给服务器之前,必须先对数据进行验证。这种验证是如何工作的?提供者首先从服务器获取实体的描述信息,包括但不限于:主键和外键、属性的验证信息(如可空性)。当然,这个实体信息可以被缓存以供重用。然后数据提供者根据这个描述信息验证数据。

2.错误信息的显示

当某个属性被验证为非法时,信息验证模块会在页面上找到对应的输入控件。它怎么找到的?例如,不允许将控件的名称输入留空。然后它首先查找id为Coutry的元素,然后在Coutry元素下面查找id或Name名称的控件,如果找不到,就会弹出一个窗口直接显示错误消息。示例:

来自三、关于后端使用 OData的formid=' Country ' input Name=' Name '/表单

1.作为后端开发者,你遇到过这样的前端开发者吗?今天,我想让你添加一个字段。好的,添加,然后打包发布。让您明天添加另一个字段。突然后天我说前两天加的字段没必要。你有没有一种想喊“操”的冲动?

2、

作为后端开发员员,你有没有碰到过这种前端开发人员,今天跟你说接口不够用,要加个 GetUserByName 的方法,明天又说,还得加个 GetUserByEmail 的方法?然后,过了一段时间,你发现接口越来越多,维护的模块越来越痈肿,并且这些接口,你只敢加,不敢删除。因为,你根本不知道这些,有哪个不用的,你跑去问前端,他也回答不出来。所以一些接口哪怕是没用的,也只能永远系统里,直到它生命周期的结束。

如果你也碰到类似于我这种烦恼,使用 OData 也许是一个不错的选择,把查询的权限都开发给前端的开发人员,他爱怎么查就怎么查,都由它去。

四、关于后端使用MVC

我们的系统,使用MVC都是用来处理从前端提交上来的数据的,使用它主要是开发人员都熟悉MVC,然后MVC再调用业务层代码,同时,还需要处理:

1、对提交上来的数据进行验证

2、处理系统的异常,包括对异常进行重新的包装,再传回到客户端,以便于客户端的处理。对异常的信息进行记录。

五、数据访问层

关于数据访问层,在我们的系统里实际是一个 ORM 的包装器(ORM Wrapper),你在对 ORM 裹上一层外衣。目的在于:

1、对数据进行拦截。例如:有些数据,只对某个角色的开发。数据访问层需要对根据过滤条件,然后再结合查询条件,重新生成SQL。

2、对数据假删除的处理。见过很多系统,都是把删除放到业务层来进行的,其实这是不适合的,从业务的角度来说,关心的是删除,在执行删除后,这条数据从我眼前消失就可以了。至真删除还是假删除,这与我无关。数据访问层,要做的就是这工作,它可以数据在真删除与假删除之间进行切换,只要配置一下,就可以把真删除变成假删除(其实就是把Delete操作变成Update操作),使得进行业务开发人员,不用再关心数据的真假删除。

3、对数据进行跟踪、备份。你肯定碰到过这么一种需要,需要记下来,每一次的更新操作的时间,以及更新了些什么内容。对于删除的数据,能够把它还原回来。数据访问层,通过对 ORM进行包装,完全可以记录下每一次更新、删除这些操作,然后记录下来即可。当然,这些需求利用数据提供的功能也是可以实现的,不在讨论的范围内。

到此,相信大家对“web前端与后端分离的架构实例分析”有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/99258.html

(0)

相关推荐

  • java判断素数为什么要假设(java中求一个数的各个完数因子)

    技术Java概率论的计数方法是什么本篇内容主要讲解“Java概率论的计数方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java概率论的计数方法是什么”吧!概率概率论

    攻略 2021年12月21日
  • debug E命令怎样改变指定地址的数据实现同时看新旧内容

    技术debug E命令怎样改变指定地址的数据实现同时看新旧内容本篇文章给大家分享的是有关debug E命令怎样改变指定地址的数据实现同时看新旧内容,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收

    攻略 2021年11月11日
  • springcloud判断微服务循环调用(springmessaging)

    技术如何进行spring-messaging远程代码执行漏洞分析这篇文章给大家介绍如何进行spring-messaging远程代码执行漏洞分析,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。0x00

    攻略 2021年12月20日
  • Expanse shopify主题模板修改

    技术Expanse shopify主题模板修改 Expanse shopify主题模板修改Expanse是一个现代的Shopify主题,通过自定义的促销活动、直观的导航、简洁的设计和奇妙的移动体验来增强

    礼包 2021年10月19日
  • 如何用Python分析热门夺冠球队

    技术如何用Python分析热门夺冠球队如何用Python分析热门夺冠球队,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。2018年,火热的世界杯即将拉开序

    攻略 2021年10月29日
  • 服务器租用香港哪家比较好USA-IDC

    技术服务器租用香港哪家比较好USA-IDC无论您正在构建哪种类型的网站,服务器方面的硬件投入。尤其是对于海外建站热门的香港服务器租用业务来说,选择的香港服务器不同,可能对网站产生质的区别,那么香港服务器租用哪家比较好,如

    礼包 2021年12月23日