开发一个web管理系统,是否要采用如今流行的前后端分离模式?

首先要从为什么会出现前后端分离说起,前后端分离的目的

1.让前端工程师(前端)和后端工程师(后端)们能够更加专注于自己的领域

传统的开发模式是由前端负责将UI设计好的页面切成对应的静态网页,然后交由后端整合数据,实现网页的数据动态化。

这种开发模式下,前端不会去关注整个系统的业务流程是怎样的,所以导致后端在将拿到的静态页面整合成动态页面时常会出现页面展示与预期的效果不一样,需要前端不断的去调整。而后端则要痛苦的去面对一堆自己并不完全了解的前端代码,有时甚至需要自己动手写js代码。这样就造成了前端对系统理解过低,后端工作量过高,开发效率过慢的情况。

2.让后端开发一次,前端可以随意改变,减少维护成本,缩短开发时长

由于现在网页可以在各种各样的设备浏览,常见的如pc、手机等,这时就需要开发多套兼容不同设备显示的系统。而使用前后端分离的好处立马显现出来,后端只需要开发好一套数据接口,前端开发兼容各种设备的n套网页,将后端写好的数据接口对接到相应的页面上,就可以实现多种设备的浏览。有一句形象的话:“换汤不换药”,无论包装成什么样,数据还是同一套数据。不需要后端针对每一个系统都开发一次。

那么,既然前后端分离的好处这么明显,那干脆就都用前后端分离不就行了,还用讨论什么?

前后端分离固然好,但是并不是每一个项目都需要兼容若干种设备,也并不是每一个开发团队都有分工明确的前端和后端。

想象自然很美好,但是现实往往是残酷的,有时一个项目可能就只有一个开发者,这个开发者既负责前端工作,也负责后端工作,也就是所谓的“全栈工程师”。当一个项目的利润不高,为了减小成本,就只能用一个后端,由后端负责整个系统的开发,而前后端分离相当于要把原来的一套系统,拆分成两套独立的系统——前端系统、后端api系统,很显然,对于一个开发者来说,一套系统肯定比开发两套系统要更简单的多。

说到这里,结论应该很明确了,web系统是否要前后端分离?

要看实际的情况而定,假如是一个分工明确,人数多的项目团队,可以使用前后端分离,这样有利于后期维护。而如果开发人员较少,或者只需要在一种设备上显示这个时候就该考虑放弃使用前后端分离,直接使用传统的开发模式。毕竟巧妇难为无米之炊,只有合适的才是最好的。

web系统是否要前后端分离?的更多相关文章

  1. Web开发笔记 #06# 前后端分离

    前后端分离 关于“前后端分离”的深入讨论: 如何正确理解前后端分离? Web 前后端分离的意义大吗? 在上面有看到有谈“国外it公司分工”的回答,感觉挺有意思的.大概是讲国外it公司并不分前后端,只分 ...

  2. 基于 koajs 的前后端分离实践

    一.什么是前后端分离? 前后端分离的概念和优势在这里不再赘述,有兴趣的同学可以看各个前辈们一系列总结和讨论: 系列文章:前后端分离的思考与实践(1-6) slider: 淘宝前后端分离实践 知乎提问: ...

  3. Cookie、Session、Token那点事儿和前后端分离之JWT用户认证

    (两篇文章转自:https://www.jianshu.com/p/bd1be47a16c1:https://www.jianshu.com/p/180a870a308a) 什么是Cookie? Co ...

  4. 前后端分离之 跨域和JWT

    书接上回:https://www.cnblogs.com/yangyuanhu/p/12081525.html 前后端分离案例 现在把自己当成是前端,要开发一个前后分离的简单页面,用于展示学生信息列表 ...

  5. 浅谈WEB前后端分离

    重审业务逻辑 用过MVC的童鞋都知道业务逻辑(Bussiness Logic),但是大多对这概念又是模棱两可,业务逻辑从来都是这样难以理解,谈论前后端分离之前这个概念非常有必要探讨一下! 在简单的CR ...

  6. 架构设计:前后端分离之Web前端架构设计

    在前面的文章里我谈到了前后端分离的一些看法,这个看法是从宏观的角度来思考的,没有具体的落地实现,今天我将延续上篇文章的主题,从纯前端的架构设计角度谈谈前后端分离的一种具体实现方案,该方案和我原来设想有 ...

  7. 前后端分离Web项目中,RBAC实现的研究

    在前后端分离Web项目中,RBAC实现的研究   最近手头公司的网站项目终于渐渐走出混沌,走上正轨,任务也轻松了一些,终于有时间整理和总结一下之前做的东西. 以往的项目一般使用模板引擎(如ejs)渲染 ...

  8. 前后端分离之Web前端架构设计

    架构设计:前后端分离之Web前端架构设计 在前面的文章里我谈到了前后端分离的一些看法,这个看法是从宏观的角度来思考的,没有具体的落地实现,今天我将延续上篇文章的主题,从纯前端的架构设计角度谈谈前后端分 ...

  9. ASP.NET Core 实战:使用 ASP.NET Core Web API 和 Vue.js 搭建前后端分离项目

    一.前言 这几年前端的发展速度就像坐上了火箭,各种的框架一个接一个的出现,需要学习的东西越来越多,分工也越来越细,作为一个 .NET Web 程序猿,多了解了解行业的发展,让自己扩展出新的技能树,对自 ...

随机推荐

  1. Kattis - intersectingrectangles 扫描线+线段树

    题目:https://open.kattis.com/problems/intersectingrectangles 题意::给你n个矩形,每一个矩形给你这个矩形的左下角的坐标和右上角的坐标,然后问你 ...

  2. C/C++ memcpy函数的用法

    功能 memcpy指的是c和c++使用的内存拷贝函数,memcpy函数的功能是从源src所指的内存地址的起始位置开始拷贝n个字节到目标dest所指的内存地址的起始位置中 头文件 所在头文件 <s ...

  3. mysql批量删除报1064原因

    DELETE FROM table_name  t where t......; 报1064 错误,原因MySQL 中delete 语句不能给表名起别名. 另外.如果记录不存在,delete from ...

  4. Mac中Apache常用命令

    Apache常用命令记录,还是记一下吧,总是忘记. Apache常用命令: # sudo apachectl start // 启动Apache服务 # sudo apachectl stop // ...

  5. SVN服务器的搭建(二)

    上一篇介绍了VisualSVN Server和TortoiseSVN的下载,安装,汉化.这篇介绍一下如何使用VisualSVN Server建立版本库,以及TortoiseSVN的使用. 首先打开Vi ...

  6. git基本操作-长期维护

    ###############    初识git    ############## """ git初识: 1,git是什么?git是一个帮助用户版本控制的软件, 2,g ...

  7. getopt|sys|open|print文件|main()|if __name__ == "__main__"|getline()

    #!/usr/bin/python import sys import getopt import re def compare(f1,f2,o1,o2,si_line): lines_count=0 ...

  8. unittest如何在循环遍历一条用例时生成多个测试结果

    引用自:http://blog.csdn.net/kaku21/article/details/42124593 参考网址:http://programmaticallyspeaking.com/te ...

  9. iOS简单音乐实现、React-Native完整项目、仿闲鱼京东列表分页、语音识别、网络加载过度动画等源码

    iOS精选源码 iOS快速入手语音识别.听写.评测.播报 网络加载数据的过渡动画(仿简书网页) iOS 封装跑马灯和轮播效果 crash防护组件,适用常见常用的数组,字典等crash保护 iOS:高仿 ...

  10. Qt 使用自带的OpenGL模块开发程序

    QT中使用opengl .pro文件中添加 QT += opengl 1.使用指定版本的OpenGL如下使用opengl4.5调用方法,使用指定版本的接口,必须设备图形显示设备支持对应OpenGL版本 ...