web系统是否要前后端分离?
开发一个web管理系统,是否要采用如今流行的前后端分离模式?
首先要从为什么会出现前后端分离说起,前后端分离的目的。
1.让前端工程师(前端)和后端工程师(后端)们能够更加专注于自己的领域
传统的开发模式是由前端负责将UI设计好的页面切成对应的静态网页,然后交由后端整合数据,实现网页的数据动态化。
这种开发模式下,前端不会去关注整个系统的业务流程是怎样的,所以导致后端在将拿到的静态页面整合成动态页面时常会出现页面展示与预期的效果不一样,需要前端不断的去调整。而后端则要痛苦的去面对一堆自己并不完全了解的前端代码,有时甚至需要自己动手写js代码。这样就造成了前端对系统理解过低,后端工作量过高,开发效率过慢的情况。
2.让后端开发一次,前端可以随意改变,减少维护成本,缩短开发时长
由于现在网页可以在各种各样的设备浏览,常见的如pc、手机等,这时就需要开发多套兼容不同设备显示的系统。而使用前后端分离的好处立马显现出来,后端只需要开发好一套数据接口,前端开发兼容各种设备的n套网页,将后端写好的数据接口对接到相应的页面上,就可以实现多种设备的浏览。有一句形象的话:“换汤不换药”,无论包装成什么样,数据还是同一套数据。不需要后端针对每一个系统都开发一次。
那么,既然前后端分离的好处这么明显,那干脆就都用前后端分离不就行了,还用讨论什么?
前后端分离固然好,但是并不是每一个项目都需要兼容若干种设备,也并不是每一个开发团队都有分工明确的前端和后端。
想象自然很美好,但是现实往往是残酷的,有时一个项目可能就只有一个开发者,这个开发者既负责前端工作,也负责后端工作,也就是所谓的“全栈工程师”。当一个项目的利润不高,为了减小成本,就只能用一个后端,由后端负责整个系统的开发,而前后端分离相当于要把原来的一套系统,拆分成两套独立的系统——前端系统、后端api系统,很显然,对于一个开发者来说,一套系统肯定比开发两套系统要更简单的多。
说到这里,结论应该很明确了,web系统是否要前后端分离?
要看实际的情况而定,假如是一个分工明确,人数多的项目团队,可以使用前后端分离,这样有利于后期维护。而如果开发人员较少,或者只需要在一种设备上显示这个时候就该考虑放弃使用前后端分离,直接使用传统的开发模式。毕竟巧妇难为无米之炊,只有合适的才是最好的。
web系统是否要前后端分离?的更多相关文章
- Web开发笔记 #06# 前后端分离
前后端分离 关于“前后端分离”的深入讨论: 如何正确理解前后端分离? Web 前后端分离的意义大吗? 在上面有看到有谈“国外it公司分工”的回答,感觉挺有意思的.大概是讲国外it公司并不分前后端,只分 ...
- 基于 koajs 的前后端分离实践
一.什么是前后端分离? 前后端分离的概念和优势在这里不再赘述,有兴趣的同学可以看各个前辈们一系列总结和讨论: 系列文章:前后端分离的思考与实践(1-6) slider: 淘宝前后端分离实践 知乎提问: ...
- Cookie、Session、Token那点事儿和前后端分离之JWT用户认证
(两篇文章转自:https://www.jianshu.com/p/bd1be47a16c1:https://www.jianshu.com/p/180a870a308a) 什么是Cookie? Co ...
- 前后端分离之 跨域和JWT
书接上回:https://www.cnblogs.com/yangyuanhu/p/12081525.html 前后端分离案例 现在把自己当成是前端,要开发一个前后分离的简单页面,用于展示学生信息列表 ...
- 浅谈WEB前后端分离
重审业务逻辑 用过MVC的童鞋都知道业务逻辑(Bussiness Logic),但是大多对这概念又是模棱两可,业务逻辑从来都是这样难以理解,谈论前后端分离之前这个概念非常有必要探讨一下! 在简单的CR ...
- 架构设计:前后端分离之Web前端架构设计
在前面的文章里我谈到了前后端分离的一些看法,这个看法是从宏观的角度来思考的,没有具体的落地实现,今天我将延续上篇文章的主题,从纯前端的架构设计角度谈谈前后端分离的一种具体实现方案,该方案和我原来设想有 ...
- 前后端分离Web项目中,RBAC实现的研究
在前后端分离Web项目中,RBAC实现的研究 最近手头公司的网站项目终于渐渐走出混沌,走上正轨,任务也轻松了一些,终于有时间整理和总结一下之前做的东西. 以往的项目一般使用模板引擎(如ejs)渲染 ...
- 前后端分离之Web前端架构设计
架构设计:前后端分离之Web前端架构设计 在前面的文章里我谈到了前后端分离的一些看法,这个看法是从宏观的角度来思考的,没有具体的落地实现,今天我将延续上篇文章的主题,从纯前端的架构设计角度谈谈前后端分 ...
- ASP.NET Core 实战:使用 ASP.NET Core Web API 和 Vue.js 搭建前后端分离项目
一.前言 这几年前端的发展速度就像坐上了火箭,各种的框架一个接一个的出现,需要学习的东西越来越多,分工也越来越细,作为一个 .NET Web 程序猿,多了解了解行业的发展,让自己扩展出新的技能树,对自 ...
随机推荐
- linux c 调用 python
/* *gcc -o callpy callpy.cpp -I/usr/include/python3.5 -lpython3.5m */ #include <Python.h> #inc ...
- CF1137C Museums Tour(tarjan+DP)
由于d很小,所以可以把每个点拆成d个点,然后对于边(x,y),连边时连接((x,i),(y,i+1))及((x,d),(y,1)).然后可以对这样连的边跑一遍tarjan缩点.然后直接暴力DP即可.不 ...
- Trying to find the anti-derivative of $\tan x$ unsuccessfully by using Euler's formula
We know that$$\tan t=\frac{e^{it}-e^{-it}}{i(e^{it}+e^{-it})}=\frac{e^{2i t}+1-2}{i(e^{2it}+1)}=- ...
- kubernets轻量 contain log 日志收集技巧
首先这里要收集的日志是容器的日志,而不是集群状态的日志 要完成的三个点,收集,监控,报警,收集是基础,监控和报警可以基于收集的日志来作,这篇主要实现收集 不想看字的可以直接看代码,一共没几行,尽量用调 ...
- [LC] 159. Longest Substring with At Most Two Distinct Characters
Given a string s , find the length of the longest substring t that contains at most 2 distinct char ...
- sql常见面试(2)
1.sql 删除表中重复数据保留一条 1)删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有rowid最小的记录 delete from people where p ...
- JDBC原理之层次结构
目录 JDBC的层次结构 前言 Collection角色 Statement角色 ResultSet角色 JDBC工作的基本流程 JDBC的层次结构 前言 JDBC API提供了以下接口和类: Dri ...
- 查看python版本和django版本
python --version 在python shell中: import sys sys.version import django django.VERSION
- 使用Hangfire MVC 做排程
Greg Yang Developer Taipei, Taiwan 108 POSTS 35 TAGS 所使用的是 Hangfire 強大排程器有 UI介面可以使用. 首先安裝PM> Inst ...
- vue-cli多页面应用常遇到的问题
1.TypeError: webpack.optimize.OccurenceOrderPlugin is not a constructor 此问题出现在webpack 3中,解决办法很简单,将oc ...