• 前端与后端分离的架构实例(二)


    前几天,写了一篇名为《一个前端与后端分离的架构实例》的文章,在那篇文章里,以一个真实的项目作为实例。现在接着再谈谈我对于前端与后端分离一些新的想法。

    对于我来说,理想的架构是,后端提供各种各样的服务,而前端只要把这些服务给整合起来,就变成一个客户所需要系统。但是,实际上在整合的过程,都需要泛及到后端的开发,我期待是后端涉及到的改动是尽可能的少。

    当一个系统是基于前端与后端分离这种模式来进行来发的,通常来说,这种开发模式使得整个开发的环节变长了,这将导致整个开发团队(包括前端与后端开发人员)的开发失去了灵活性,因为一点点小功能的改动,很有可能都需要好几个人来进行协作开发。

    举一个例子来说,如下图所示,如果要添加一个地址的字段,我们来看看整个开发流程是怎么样的。首先,前端人员要找到后端开发人员,告诉他需要添加一个字段,后端开发人员确认后,然后在数据对应的表里加了这么一个字段,接着生成 Model,然后测试一下,再告诉前端人员,前端人员进行开发。从这里我们可以看得出来,添加字段一个如此简单的功能,整个流程走完,最少也得一个小时,这是理想的情况。碰到不理想的情况,拖个几天也是有可能。

    数据的提交

    我一直在想,能不能把这个环节给缩短了,从于提升整个开发团队的效率。对于前端开发人员来说,他只关心这个字段能不能保存起来,并且能读出来就行了,致于保存到哪里,数据库还是其它什么地方,他是不关心。那么,后端能不能自动把这个字段给保存起来呢?

    前端开人员提交的数据:

    {
        UserName: 'administrator',
        Address: '上海闸北'
    }

    数据的保存

    后端在接收到前端人提交上来的数据后,对字段进行逐个判断,如果实体类里面没有对应属性的,比如说没有"Address"这个属性,那么这些属性将会以键值的方式来储存,比如说可以使用 NoSQL 数据库来保存。

    数据的读取

    数据的读取是首先从关系型数据库把数据给读取出来,然后再从NoSQL数据读取对应的键值对(假定数据保存在非关系型数据库里),然后把数据给整合起来返回到前端。

    实体的保存

    对于一些简单的,非核心的业务,我们完全可以在前端来实现,比如说,选座位的这么一个功能,类似似于团购电影票的时候,进行座位的选择这么一个功能。这种功能非常简单,但是,泛及到实体类的添加,同样,我们也可以采用使用 NoSQL 数据来保存这些数据。

    安全性

    对于我们系统来说,由于前端是使用 JavaScript 来编写的,上面这种做法使得整个系统的安全性变得很脆弱,很容易在数据库中注入一些数据。所以还需要保证,每个用户只能够对自己的数据进行处理。关于这个问题,我们以后再具体谈谈。

    招聘前端初级开发人员:懂 JQuery、JQuery UI、JQuery Validate、Knockout JS 等JS 框架,略懂 Linq to SQL,能阅读文档,根据文档示例写代码(欢迎勤奋好学的毕业生)

    地点:上海市闸北区

    网站:http://www.vknew.com/index.html

  • 相关阅读:
    SCOPE_IDENTITY和@@identity的区别
    IE6.0、IE7.0 与FireFox CSS兼容的解决方法
    DivCSS布局基础:CSS中控制换行的四种属性
    load的用法(问题未解决)
    设置每个li的margin距离(巧设计)
    IE6下设置float和margin的问题
    在IE7下设置zindex没有反应
    做css页面时,注意的地方
    专题页
    IE8下margintop问题
  • 原文地址:https://www.cnblogs.com/ansiboy/p/3552221.html
Copyright © 2020-2023  润新知