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)

相关推荐

  • 新加坡云服务器值得租用吗

    技术新加坡云服务器值得租用吗新加坡云服务器提供了一个虚拟和独立的环境来托管您的企业网站。它可以将您的网络业务的文件和数据存储在链接到物理机器或服务器的虚拟环境中。这实际上是通过虚拟化软件完成的。通过虚拟化技术,物理服务器

    礼包 2021年12月8日
  • 语文中什么叫双音节词,加more 的双音节词有哪些

    技术语文中什么叫双音节词,加more 的双音节词有哪些加more/most构成比较级/最高级的单音节和双音节形容词加more和most构成比较级和最高级的单音节形容词和双音节形容词
    A语文中什么叫双音节词。由分词转化成的

    生活 2021年10月29日
  • YOLOv3-tiny怎么在VS2015上使用Openvino部署

    技术YOLOv3-tiny怎么在VS2015上使用Openvino部署YOLOv3-tiny怎么在VS2015上使用Openvino部署,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题

    攻略 2021年11月10日
  • 怎么使用oracle索引监控

    技术怎么使用oracle索引监控这篇文章主要介绍“怎么使用oracle索引监控”,在日常操作中,相信很多人在怎么使用oracle索引监控问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么使

    攻略 2021年11月10日
  • mysql如何实现查表空间大小的SQL语句

    技术mysql如何实现查表空间大小的SQL语句这篇文章将为大家详细讲解有关mysql如何实现查表空间大小的SQL语句,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

    攻略 2021年10月30日
  • SQL中集合运算符有哪些

    技术SQL中集合运算符有哪些这篇文章主要为大家展示了“SQL中集合运算符有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“SQL中集合运算符有哪些”这篇文章吧。1、unio

    攻略 2021年12月13日