zoukankan      html  css  js  c++  java
  • 前后端分离(一)

    参考:https://www.kancloud.cn/kancloud/midway/48192

    前言

    随着不同终端的兴起,对开发人员要求越来越高,纯浏览器端的响应式已经不能满足需求,我们需要为不同版本的的终端开发定制版的网页,传统的开发方式前后端耦合性太大,不能快速的基于前一版本开发其他版本的页面。为了提高开发效率,前后端分离成为了最好的选择方式,前端后端分别负责不同的方向,前端负责展现和交互,后端负责业务和数据接口,这样可以减少前后端的耦合性,前端后台通过api来交互,这样可以使前端用同一套数据接口开发出不同版本的系统。

    一、前后端分离概念

    前后端分离是从职责上进行划分,不再是单纯的物理层划分

    前端:负责view和controller

    后端:负责model层,业务处理和数据处理

    eg:SPA(single-page application)即为一个前后端分离的例子,前端和后台交互仅通过AJAX的方式交互。但是spa是通过物理层做的区分(认为只要是客户端就是前端,服务器端就是后台)

      SPA存在问题

        1.SPA用的场景较少,很多场景还是用同步异步混合的方式。

        2.现阶段的SPA开发模式,接口由后台提供,但是有时为了提高效率,后端帮前端处理了展现逻辑,意味着后台处理了view层。

        3.SPA方式不利于SEO(搜索引擎搜索)

    二、为什么要有前后端分离

    1、现有开发模式适用场景

    1)以后台为主的mvc,做同步展现很方便,但是同步异步相结合的就很麻烦

    2)Ajax为主的SPA型,适合app类型场景开发,但是对SEO很不友好。对于稍微简单一些的系统,用这种开发模式过于笨重

    2、前后端职责不清

    目前前后端职责不是很清楚,没有约束,每一层都可能出现不属于本层的东西,不便于维护。

    3、开发效率问题

    前后端揉杂在一起,对前端后台来说都是一个很大的负担,前端不能关注到view,要了解很多后台的语言特性,在前端代码中穿插后台代码,后端没法摆脱对展现的强关注,从而专心于逻辑层开发。

    4、对前端发挥局限

    因为与后台强耦合性,前端只能在很小的空间中发挥作用,没法尝试更新的技术。

    三、如何做前后端分离

    在后台与前端view之间新加一层node来做代理。

    1、为什么要加node层

    1)MVC严重阻碍了前端开发效率,也是后台无法集中于业务,解决方案是让前端来控制controller

    2)前端来写controller,如果让前端再学一门后台语言代价太大,node是用js开发

    3)前端来代理可以优化请求,合并请求,所有与页面交互的接口自己控制,能够提高前端的开发效率

  • 相关阅读:
    tty 与 多任务的解释备忘
    Oracle 安装时候的fs.filemax参数
    100多个Web2.0在线生成器
    精心整理的微软原版光盘
    WEB3.0开启商务魔法时代
    VBO与Displaylists的进一步讨论 (转)
    基于UML和ASP.NET实现三层B/S结构系统开发(转)
    BYTE* To Float*
    COM高手总结的八个经验和教训(转)
    OpenGL: 3D坐标到屏幕坐标的转换逻辑(gluProject的实现)(转)
  • 原文地址:https://www.cnblogs.com/ranjianxi/p/7202542.html
Copyright © 2011-2022 走看看