意义很大,但是你的问题本身认识有偏差。

对于前后端分离,认识上有个误区,那就是很多人自称:我们老早就分离了,全AJAX,使用Angular或者什么什么就可以了。

这个说法是不合适的,打个比方,别人问的是“如何解决家禽把蛋生在水草边的问题?”,但实际上人家养的是鸭子,答题的却是养鸡的,所以回答“不让去水边就行了”,这显然不在点子上。

这两年业界说的前后端分离,是限于偏展示类的系统(用A代替),而不是应用、管控类Web项目(用B代替),在B类项目里,前后端是天然分离的,对此,除了少部分后端开发人员,基本所有人的认识都是一致的。上一段中这样回答的人一般都是只做B类项目,在B类项目里,前后端分离是共识,不需要讨论。

那么,剩下的问题就是讨论A类项目的前后端分离了。这个问题的核心在什么地方呢,在于模板的与数据结合的位置,以及,模板的控制权在谁手里。经过这两年的讨论,基本上我们可以达成的共识就是:模板应当由前端人员去控制,主要原因有两方面:

- 性能优化(尤其是外部资源的管理与发布,请求合并等等)

- 协作的顺畅性(已形成模板的界面片段的返工等问题)

那么,模板到底应该在什么地方跟数据结合?

这个问题就比较折腾了,有部分人尝试像B类项目那样,使用js模板,然后在浏览器端执行,这是存在一些问题的,比如说seo不友好,首屏性能不够,尤其对于首页DOM量很大的电商类网站,差距很明显。

所以我们还是得把主要的模板放在服务端来执行。在这个过程中,阿里作了一些尝试,那就是引入Node层,在这一层把模板与数据进行合成,然后浏览器拿到的就是生成好的HTML了,但也不是所有HTML都是这么生成好的,还是会有一些内容等到了浏览器之后,再用js去加载和生成。

所以这一定会是一个混合方案,同一个系统中存在两种模板,一种在服务端执行,一种在浏览器中执行,互为补充。

至于说这个方案中,是否中间层一定要是node,我觉得无所谓,只要是能正常做web项目的东西都可以,这个还是要看所在企业的技术积累方向,当然node做这块是有一些优势的,比如对前端人员的语言友好性,前后端模板的通用性等等,但这些都是细节,重点还是整体方案和流程。

这时候回头看你问题中的这句:

> 前后端分离的意思是,前后端只通过 JSON 来交流,组件化、工程化不需要依赖后端去实现。

我相信你这里对前后端的限定是以浏览器为准的,但事实上,A类项目中,前后端的分界一定要延伸到服务器端的模板层,也就是在这一层里,把各种来源的数据整合到模板中,这个数据未必是JSON格式的,会存在有JSON,XML,特定的二进制等等。

组件化这个话题就更复杂了,在刚才组织形式中,很难说出究竟什么才是组件。是某个商品的模板吗?是数据吗?是数据和模板的结合体吗?没法回答。在此,我说一句自己的看法:像电商这种项目的前端部分,基本不存在组件的概念,甚至不存在组件化的价值,因为这里面可复用的东西太少了,也不易提取,大多数东西都是不带逻辑的界面模板。

最近因为ReactJS的流行,带来了一个Isomorphic的概念,这是一种很有意义的探索,但是否能解决这类问题,尚不得而知,根据我的理解,它对B类项目是较好的补充方案,但对A类项目暂时还缺乏可用性,因为A类项目中,运行期的DOM变更并不多,多是整片的改变,用这个方案去解决的话,有些牛刀杀鸡的感觉。

关于B类项目的组件化,我之前那个没写完的系列是关于它的,但经过最近一年多的思考,我又觉得需要再重新写一篇东西了。感谢你的问题提醒了我,这就写。

mysql定位前后端问题_Web 前后端分离的意义大吗?相关推荐

  1. Android端+java后端+servlet+MySQL的型男塑造平台【前后端源代码+论文+答辩ppt】

    活动地址:毕业季·进击的技术er 目录 前言 第一章 绪论 1.1 背景和意义 1.2 国内外研究现状 1.3 论文研究目标与内容 1.4.减肥瘦身相关概念与计算方式介绍 第二章 需求分析 2.1 平 ...

  2. Maven项目+MVC三层架构+Mysql+Tomcat+私教预约系统前后端(私教、用户、管理员)+可以用于学习SSM框架、javaweb、maven项目入门

    Maven项目+MVC三层架构+Mysql+Tomcat+私教预约系统前后端(私教.用户.管理员)+可以用于学习SSM框架.javaweb.maven项目入门 可以用于课程设计.毕业设计的知识点入门学 ...

  3. webapi把html内容传后端,WebAPI 实现前后端分离

    随着Web技术的发展,现在各种框架,前端的,后端的,数不胜数.全栈工程师的压力越来越大. 现在的前端的框架,既可以做各种Web,又可以做各种APP,前端框架更新换代越来越快,越来越多. 传统的模式 前 ...

  4. easyui框架前后端交互_easyui前后端分离

    陈旧的开发模式 美工(ui工程师:出一个项目模型) 前端工程师做html页面 java工程师:将原有的html转成jsp,动态展示数据 前后端强依赖,后端必须要等前端的html做好才能套jsp.如果h ...

  5. Axure通用版电商后台管理系统+通用版移动端商城商户端+电商管理系统+对账管理+消息管理+内容管理+运营管理、会员管理、订单管理、促销管理、财务管理+通用版商城前后端电商系统+电商用户数据大屏看板

    作品介绍:Axure通用版电商后台管理系统+通用版移动端商城商户端+电商管理系统+对账管理+消息管理+内容管理+运营管理.会员管理.订单管理.促销管理.财务管理+通用版商城前后端电商系统+电商用户数据 ...

  6. 【ECDH java后端和javaScript前后端互通实现】

    ECDH java后端和javaScript前后端互通实现 问题背景 ECDH算法 Java 实现 前端JavaScript 实现 问题背景 web前端和后端之间的通信不一定可靠,如果不方便使用预共享 ...

  7. 基于知识图谱的前后端(vue+django)分离的问答系统的设计与实现(三):前端开发

    基于知识图谱的前后端(vue3+django)分离的问答系统的设计与实现 基于知识图谱的前后端(vue3+django)分离的问答系统的设计与实现(一):总体介绍 基于知识图谱的前后端(vue3+dj ...

  8. mysql查询手机号码后四位,前几位怎么写?

    mysql查询手机号码后四位,前几位怎么写? 查询手机号后四位 同理查询前几位这么写 引申一下查询前几位和后几位写法 随机位置查询的写法,只要出现就打印 也是新手,才疏学浅,大家共同进步,谢谢 查询手 ...

  9. mysql前端还是后端_前端和后端哪个发展好点?

    前端和后端哪个工资高,哪个发展前景好?事实上,两个都是属于技术研发岗位,都是高薪有前途的职业,不存在说哪个工资更高些,都基本在一万到五万之间,工资的差别主要体现在个人技术上.要问做前端好还是做后端好? ...

最新文章

  1. 油品调和计算软件_燕山石化汽油在线调和系统完成升级改造
  2. 面试题:找出出现次数超过1/2和1/3的数
  3. apache2 的https配置和代理https后端nodejs配置
  4. linux导入函数包失败,使用qsub运行shellscript时出现apos;文件意外结束apos;和apos;错误导入函数定义apos;错误 中国服务器网...
  5. openssh 7.4 java使用_openssh/openssl升级到7.4和1.0.2j 源码方式
  6. vue.js 2.0 官方文档学习笔记 —— 01. vue 介绍
  7. 如何用ABAP代码的方式弹出SPRO里的customizing activity
  8. Vue报错:Elements in iteration expect to have ‘v-bind:key‘ directives的解决办法
  9. 雷军再失猛将!小米12号创始员工离职 曾一起喝粥创立小米
  10. vue多页面开发_使用VUE进行移动端H5页面开发前准备
  11. 计算机网络考前,《计算机网络原理》--考前复习资料.doc
  12. 机器学习(一):数据预处理
  13. 安卓模拟器封包抓取加解密
  14. MPPT算法(恒定电压、扰动观察、电导增量)介绍与实现过程
  15. Oracle 数据库限制IP地址连接
  16. 业务分析系列主题:业务场景
  17. 什么软件可以测试手长,手相测试扫一扫软件
  18. uniapp如何使用uview中的loadmore上拉加载
  19. 读《期货市场计算机分析指南》笔记
  20. 众筹源码 php,助创cms众筹源码系统v1.0

热门文章

  1. 求序列中第k小的数_无理数的整数部分与小数部分
  2. 如何将SmartDraw中的图形导出LATEX可用的EPS格式?
  3. Faster R-CNN 《Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks》论文笔记
  4. hdu5459(2015沈阳网络赛J题)
  5. Codeforces Gym 101630J Journey from Petersburg to Moscow (最短路)
  6. 从2018年12月起陆续将博客搬至博客园(cnblogs)
  7. java图片上传下载_java web 文件上传与下载
  8. 安卓开发fragment报错_android开发 Fragment嵌套调用常见错误
  9. linux合并两个文件 去重复,c - 在Linux中使用C,通过系统调用将两个文本文件合并为一个新文件(来回换行) - 堆栈内存溢出...
  10. 计算机专业人大学排名,计算机专业学校排名哪些大学计算机专业比较好