前后端分离php还有优势,前后端分离优缺点

前后端分离优缺点

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

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

一、先用一张图来解释

loading.gif

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

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做数据通信

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
前后端分离和前后端混合开发模式是两种不同的开发模式,它们的主要区别如下: 1. 概念不同: 前后端分离是指前端和后端开发人员分别开发自己的模块,前端负责页面展示和用户交互,后端负责数据处理和业务逻辑。前后端通过 API 接口交互数据。 前后端混合开发则是指前端和后端开发人员混合在一起,共同开发整个应用。前后端代码在同一个项目中,前端开发人员需要了解后端技术,后端开发人员也需要了解前端技术。 2. 技术栈不同: 前后端分离开发需要使用框架或技术栈来实现 API 接口的开发和数据交互。前端技术栈通常有 Vue.js、React、Angular 等,后端技术栈通常有 Spring、Node.js、Django 等。 前后端混合开发则需要使用前端和后端都能应用的技术栈,比如 Java、PHP、Ruby、Python 等。 3. 代码分工不同: 前后端分离的代码分工明确,前端负责页面展示和用户交互,后端负责数据处理和业务逻辑。开发人员可以专注于自己的领域,提高开发效率。 前后端混合开发的代码分工不够明确,前端开发人员需要了解后端技术,后端开发人员也需要了解前端技术。这样会增加项目的复杂度和开发难度。 4. 系统可维护性不同: 前后端分离的系统可维护性比较高,因为前后端代码分离,可以独立开发、测试、部署和维护。如果需要更新系统,只需要更新前端或后端的代码即可。 前后端混合开发的系统可维护性较低,因为前后端代码耦合在一起,更新系统需要一起更新前端和后端的代码。这样会增加系统维护的难度和成本。 总之,前后端分离和前后端混合开发模式各有优缺点,开发人员需要根据项目需求和团队技术水平来选择适合的开发模式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值