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)

相关推荐

  • RegExp对象的方法有哪些

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

    攻略 2021年11月14日
  • Redis中缓存过期、内存被缓存占用要如何处理

    技术Redis中缓存过期、内存被缓存占用要如何处理这篇文章主要讲解了“Redis中缓存过期、内存被缓存占用要如何处理”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Redi

    攻略 2021年11月29日
  • Java学习笔记32——二维数组

    技术Java学习笔记32——二维数组 Java学习笔记32——二维数组二维数组
    概述二维数组:就是元素是一维数组的数组举例:二班{{小王,小李},{小刘,小明},{小朱,小伟}}二维数组的定义格式
    格式

    礼包 2021年12月1日
  • kafka zookeeper存储结构图是怎样的

    技术kafka zookeeper存储结构图是怎样的这期内容当中小编将会给大家带来有关kafka zookeeper存储结构图是怎样的,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。ka

    攻略 2021年11月12日
  • android httpClient 支持HTTPS的访问方式是怎样的

    技术android httpClient 支持HTTPS的访问方式是怎样的这篇文章将为大家详细讲解有关android httpClient 支持HTTPS的访问方式是怎样的,文章内容质量较高,因此小编分享给大家做个参考,

    攻略 2021年11月12日
  • 二手车好吗,你觉得二手车能不能买,为什么

    技术二手车好吗,你觉得二手车能不能买,为什么二手车可以买二手车好吗,但是你要买对品牌,不是什么车都可以买二手的。接触了汽修行业十几年,我来跟你说说哪些二手车可以买,哪些二手车不能买吧。
    美系车,通用系的,二手是真的不敢买

    生活 2021年10月28日