1.3 前后端分离开发
1.3.1 前后端分离架构介绍
前后端分离已成为互联网项目开发的业界标准使用方式,将前端和后端的开发进行解耦。并且前后端
分离会为以后的大型分布式架构、微服务架构、多端化服务(各种客户端,比如浏览器、车载终端、安
卓、IOS等)打下坚实的基础。
前后端分离的核心思想就是前端HTML页面通过AJAX调用后端的API接口,并通过JSON数据进行 交互。
1.3.2 接口文档
1.3.2.1 什么是接口文档?
在我们的项目中使用的是前后端分离开发方式,需要由前后端工程师共同定义接口,编写接口文档,
之后大家都根据这个接口文档进行开发,到项目结束前都要一直进行接口文档的维护。
1.3.2.2 为什么要写接口文档?
- 项目开发过程中前后端工程师有一个统一的文件进行沟通交流,并行开发
- 项目维护中或者项目人员更迭,方便后期人员查看、维护
1.3.2.3 接口规范是什么?
一个接口的描述至少包括下面几项:
- 名称: fifindCourseList
- 描述: 根据条件查询课程信息
- URL: http://localhost:8080/lagou_edu_home/course/
- 请求方式: GET
- 请求参数
- methodName:"findCourseList";
- 响应结果
{
"status": "0",
"msg": "success"
}
1.3.3 前后端分离架构的优势
1.3.3.1 前后端耦合的开发方式
这种方式中 Java程序员又当爹又当妈,又搞前端,又搞后端。 正所谓术业有专攻,一个人如果什么
都会,那么他肯定也什么都不精.
1.3.3.2 前后端耦合的缺陷 (以JSP为例)
- UI出好设计图之后,前端开发工程师只负责将设计图切成HTML,需要由Java开发工程师来将 HTML套成JSP页面,修改问题的时候需要双方协同开发,效率低下。
- JSP页面必须要在支持Java的WEB服务器上运行(如Tomcat、Jetty等),无法使用Nginx等(官方 宣称单实例HTTP并发高达5W),性能提升不上来。
- 第一次请求JSP,必须要在WEB服务器中编译成Servlet,第一次运行会较慢。 之后的每次请求JSP 都是访问Servlet再用输出流输出的HTML页面,效率没有直接使用HTML高
1.3.3.3 前后端分离的开发方式
1.3.3.4 前后端分离的优势
- 前后端分离的模式下,如果发现Bug,可以快速定位是谁的问题,不会出现互相踢皮球的现象
- 前后端分离可以减少后端服务器的并发/负载压力。除了接口以外的其他所有HTTP请求全部转移到
- 前端Nginx上,接口的请求则转发调用Tomcat.
- 前后端分离的模式下,即使后端服务器暂时超时或宕机了,前端页面也会正常访问,只不过数据刷不出来而已。
- 前后端分离会更加合理的分配团队的工作量,减轻后端团队的工作量,提高了性能和可扩展性。
1.4 技术选型
1.4.1 前端技术选型
1.4.2 后端技术选型
1.5 项目开发环境
开发工具
- 后端: IDEA 2019
- 前端: VS code
- 数据库: SQLYog
开发环境
- JDK 11
- Maven 3.6.3
- MySQL 5.7