前后端分离优缺点

之前有朋友问我:什么是前后端分离。他说北度搜到的都是大篇幅文章,看完还是很懵。

这里我简单总结下,如果有疏漏和不对的地方还请路过的网友指出。

一、先用一张图来解释

二、为什么要前后端分离(优点)

1. 全端适应

PC、APP、PAD等。

2. SPA开发模式开始流行

SPA即Single Page Web Application,俗称单页应用。

3. 前后端开发职责不清

比如JSP、PHP页面,到底是由前端写还是后端写 (所有的模板语言会遇到这样的问题)。

4. 开发效率问题,前后端互相等待

要把html转成template等,效率比较低。

5. 前端一直配合着后端,能力受限

很多交互逻辑要在template里面由后端实现,前端只负责提供静态html,对前端工程师的能力提高不利。

6. 后台开发语言和模板高度耦合,导致开发语言依赖严重

比如后端是Java写的,后期要换成Python,可是模板中嵌入了很多Java语法,等于要重写整个template。

三、前后端分离缺点

1. 前端学习门槛增加、前端工作量加大

前端需要实现一部分的交互逻辑。

2. 数据依赖导致文档重要性增加

接口文档需要很详细,且要及时更新。(一个段子,程序员最痛恨两件事:1.别人的代码没写文档,2.写文档)

3. SEO难度加大

前端渲染的页面不利于搜索引擎爬虫爬取,但有办法解决的,即SSR策略。(以vue为例可以参考这个链接:https://segmentfault.com/a/1190000007933349)

四、综上

1. 一种趋势

前后端分离有一些缺点,但都是可以想办法解决的,总的来说优点大于缺点,而且也是一种趋势。

2. 不过在一些场合其实也没有必要前后端分离

比如写个人网站、内部小运维系统等。这些一般情况下都是一个人完成的,如果前后端分离写,就有frontend和backend两套代码要写,打开两个IDE,颇有左右手互搏的感觉。

当然如果为了练习和学习,写个这样的博客系统也是不错的。

五、补充知识点 - restful api

restful api目前是前后端分离最佳实现

restful api是一种规范,作为开发时的标准

轻量,直接通过http。不需要额外的协议,post/get/put/delete操作

面向资源,一目了然,具有自解释性。比如看请求头delete就知道是删除动作。

数据描述简单,一般通过json或者xml做数据通信

python后端开发的缺点_前后端分离优缺点相关推荐

  1. vue后端必须接口吗_前后端分离模式,后端说开发完才能给接口文档,合理吗

    背景: 汇总了下老王在其他平台的原创回复,欢迎关注老王原创公众号[软件老王],关注不迷路. 一.后端开发完接口才给出接口文档,合理吗? 本人所在的项目组做项目过程中,后端不会先给出接口文档,而是要等他 ...

  2. python后端开发学路线_【后端开发】Python要学哪些内容?Python程序员学习路线图...

    很多零基础入门学习python不知道学习什么?也不知道Python要学哪些内容?下ki4网为您总结一下Python程序员学习路线图. python的应用范围是很广泛的,例如一些网络的爬虫,和web的开 ...

  3. web后端开发学习路线_学习后端Web开发的最佳方法

    web后端开发学习路线 My previous article described how you can get into frontend development. It also discuss ...

  4. java前后端用json传值_前后端——json的传值与接收(springMvc)

    原标题:前后端--json的传值与接收(springMvc) 前端传值: 通过将要传输的数据封装为json,然后再通过ajax接收: JSON.stringify(data) 1 后端接收值只需要通过 ...

  5. python安装环境傻瓜式安装_前后端分离——前端开发环境傻瓜式一步到位 nodejs ruby python nginx 安装搭建配置...

    前端开发环境一步到位 一.准备工作 nodejs安装 安装:next->next.... Ruby安装 安装:next->next.... 需要配置到path:将安装目录复制到环境变量中, ...

  6. python 抖音第三方登录_前后端分离抖音第三方授权登录

    现在我做的项目需要支持使用抖音账号登录,并且可以管理自己的抖音号,所以我需要拿到抖音用户的身份验证 access_token,这篇文章记录一下抖音授权登录的流程. 抖音开放平台提供了授权相关的接口和文 ...

  7. python做后端开发的优点_【后端开发】python语言的特点是什么

    python语言的特点是什么? python语言的特点 简单 Python是一门简单而文字简约的语言.阅读好的Python程序感觉就像阅读英语,尽管是非常严格的英语.Python的这种伪代码特性是其最 ...

  8. 前后端开发的心得体会_前后端对接的思考及总结

    说在前面的话 随着前端NodeJs技术的火爆,现在的前端已经非以前传统意义上的前端了,各种前端框架(Vue.React.Angular......)井喷式发展,配合NodeJs服务端渲染引擎,目前前端 ...

  9. 移动端开发者眼中的前端开发流程变迁与前后端分离

    写在最开始 这是一篇面向移动端开发者的科普性文章,从前端开发的最初流程开始,结合示范代码,讨论开发流程的演变过程,希望能覆盖一部分前端开发技术栈,从而对前端开发的相关概念形成初步的认识. 本文会提供一 ...

最新文章

  1. Linux查看谁修改的文件,linux如何查看近来修改的文件
  2. C# 发邮件 服务器响应为: 5.7.0 Must issue a STARTTLS command first
  3. thinkphp5带条件分页
  4. 英伟达最大gpu_英伟达正式发布Ampere架构GPU,完成史上最大性能飞跃
  5. SqlException (0x80131904): 将截断字符串或二进制数据。
  6. codeforces G - Almost Increasing Array 动态规划、动态开点线段树
  7. linux windows 域,linux加入windows域之完美解决方案
  8. 不要再纠结卷积的公式啦!0公式深度解析全连接前馈网络与卷积神经网络!
  9. Security+ 学习笔记45 移动设备安全
  10. atat 编译安装测试说明
  11. Modbus驱动库—libmodbus驱动库的使用
  12. Context是什么
  13. 拼写单词 给你一份『词汇表』(字符串数组) words 和一张『字母表』(字符串) chars。 假如你可以用 chars 中的『字母』(字符)拼写出 words 中的某个『单词』(字符
  14. 数据分析36计(19):美国生鲜配送平台【Instacart】如何实现按时配送——使用分位数回归...
  15. timestamp 6 mysql_Oracle timestamp(6)运用
  16. c语言中用rgb改颜色字体,C语言颜色转换宏
  17. matlab教程 for循环,Matlab for循环使用操作教程分享
  18. ET在课堂:S4A,新的重组方案
  19. 数字图像处理之第三章
  20. PageHelper的使用

热门文章

  1. 如何完全清除linux内核,清除旧的Linux内核
  2. JavaScript中的对象,如何创建对象,创建对象的7种模式
  3. ajax方法怎么用,ajax的使用方法
  4. 《MySQL数据库用户模块需求分析》
  5. PCL——超体素(SuperVoxel)、超体聚类分割
  6. cf Sonya and Robots
  7. 浅谈 D-Bus、udevd 和 hald
  8. 2017711010137 赵栋 《面向对象程序设计》第四章学习总结
  9. python实验过程心得体会_web实训心得体会
  10. java大写英文字母_输出一个字符串中的大写英文字母数,小写英文字母数以及非英文字母(.java)...