全干还是全栈?前后端要不要分离?

最近由于公司的项目都是前后端分离的,但是规范不够严格,导致开发起来出现了很多问题,所以有了下面的思考。
什么是前后端分离?我们为什么要使用这种模式?有什么优点和缺点?

1、前后端分离是什么?

前后端分离是一种把项目工程化和模块化的思想,通过将前端和后端独立出来进行开发,使得开发人员对自身的职责更加明确,能有效地提高开发效率。正所谓术业有专攻,如果能专心去做好一个方面的事,那前后端分离之后对于个人的提升是非常有帮助的。当然如果是企业,就得考虑很多方面,不能为了前后端分离而去搞前后端分离。传统的开发协调模式为:

  • 前端先写一个静态页面,然后让后端去套模板。静态页面可以本地开发,前端工程师也无需考虑业务逻辑,只需要根据设计图实现View即可。缺点是耦合性高,让后端去套模板,后端工程师就得熟悉掌握html和css等前端知识,这样学习成本高。
  • 前端根据后端的服务,直接写模板。缺点是前端编写过程中很依赖后端,如果当后端没写完的情况下,前端几乎没法干活

这两者的共有的缺点都是前端无法单独调试,而且前端或后端工程师难免会遇到不是自己领域里的代码,导致开发效率降低。


2、在软件开发过程中的体现

​ 软件开发一般有四个步骤,设计、开发、测试、部署。真正的前后端分离应该渗透到每一个阶段当中。

  • 设计阶段:系统设计和接口设计,规定好统一的接口请求方式,数据类型和数据格式。
  • 开发阶段:前后端各自按照实现约定的接口独立去开发,写代码。
  • 测试阶段:前后端独立可测试, 前端:页面,跳转,数据展示,输入,传参等;后端:保证数据接口的提供,数据格式,校验,异常,数据验证和一致性问题等,前后端都可以解决跨域问题。
  • 部署阶段:前后端项目独立可部署。

3、要不要做前后端分离

从上面的阶段分析可以看出前后端分离的成本是不小的。如果是一个真正的前后端分离开发,那对人力成本、开发成本、工具成本和部署成本的要求都很高,此时如果不考虑项目的实际需求,即使小团队小项目也要跟这波热潮,强行进行前后端分离式项目开发,那样的性价比太低,得不偿失。总而言之,前后端分离只是一种在项目管理上的工程考量,做不做其实还是得看实际的需求来下定论。最最主要的还是要制定好相应的规范,然后再去前后端分离开发,这样子效率也会比传统模式高很多。


4、前后端架构

不分离的架构模式

客户端–》后台应用
在这里插入图片描述

前后端分离架构

​ 客户端–》前端–》Ajax–》Restful后端数据接口(数据交互以JSON格式进行)

在这里插入图片描述


5、热门的前后端系统设计

Spring Boot(后端应用) + Vue(前端应用)

  • 后端:Spring Boot + MyBatis + MySQL + …
  • 前端:Vue + Element UI + …
  • 接口管理:Swagger / YApi
  • 项目管理:Maven(依赖管理) + Git(版本管理)

最后总结一下,还是得根据自身的业务来考量是否要采用前后端分离的开发模式。如果你是做自己的个人项目,还是推荐你专精一端,当然学生时间多,可以多玩玩,当个全干高手。在公司的话,公司想要怎么做就怎么做吧,除非你是老大,可以随意掀桌子 _

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值