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)

相关推荐

  • oracleasm大小不一导致磁盘耗尽(oracleasm磁盘空间使用情况不正确)

    技术oracle中如何解决asm磁盘添加失败问题这篇文章将为大家详细讲解有关oracle中如何解决asm磁盘添加失败问题,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。生产环境存储划盘并

    攻略 2021年12月17日
  • @Autowired 与@Resource的异同点

    技术@Autowired 与@Resource的异同点 @Autowired 与@Resource的异同点前言
    最近写代码的时候,碰到一个小问题;可以看到,Spring Boot不推荐使用@Autowi

    礼包 2021年12月24日
  • Python如何爬取北京市所有电子眼名

    技术Python如何爬取北京市所有电子眼名Python如何爬取北京市所有电子眼名,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。前言今天给大家分享一篇非常

    攻略 2021年10月26日
  • kafka topic 需要建立吗(怎么启动kafka)

    技术怎样认识 Kafka本篇文章为大家展示了怎样认识 Kafka,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。今天我们来聊聊 Kafka ,主要是带你重新认识一下 Kafka,聊

    攻略 2021年12月15日
  • redis两种持久化方式的优缺点是什么

    技术redis两种持久化方式的优缺点是什么这篇文章给大家分享的是有关redis两种持久化方式的优缺点是什么的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 redis

    攻略 2021年11月20日
  • mybatis-plus拦截器敏感字段加解密的实现方法是什么

    技术mybatis-plus拦截器敏感字段加解密的实现方法是什么本篇内容主要讲解“mybatis-plus拦截器敏感字段加解密的实现方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编

    攻略 2021年11月9日