![65658bcefd44de4190b24bee52dd480b.png](https://i-blog.csdnimg.cn/blog_migrate/655ee3e8a3c98e5a3b64da1015aebf8f.jpeg)
Ⅰ 传统开发模式
- 前后端分离前我们的开发协作模式一般是这样的:
前端写好静态的HTML页面交付给后端开发。静态页面可以本地开发,也无需考虑业务逻辑只需要实现View即可。
后端使用模板引擎去套模板,同时内嵌一些后端提供的模板变量和一些逻辑操作。
然后前后端集成对接,遇到问题,前台返工,后台返工。
然后在集成,直至集成成功。
![9ccb7219054ff549256a55cc4d316047.png](https://i-blog.csdnimg.cn/blog_migrate/ba8307923d3f1cac4e00670edf5faaa5.jpeg)
- 缺点:
在前端调试的时候要安装完整的一套后端开发工具,要把后端程序完全启动起来。遇到问题需要后端
开发来帮忙调试。我们发现前后端严重耦合,还要要求后端人员会一些HTML,JS等前端语言。
前端页面里还嵌入了很多后端的代码。一旦后端换了一种语言开发,简直就要重做。
像这种增加了大量的沟通成本,调试成本等,而且前后端的开发进度相互影响,从而大大降低了开发效率。
Ⅱ 前后端分离的开发模式
- 前后端分离并不只是开发模式,而是web应用的一种架构模式。在开发阶段,前后端工程师约定好数据交互接口,实现并行开发和测试;在运行阶段前后端分离模式需要对web应用进行分离部署,前后端之前使用HTTP或者其他协议进行交互请求。
- 客户端和服务端采用RESTFul API的交互方式进行交互
![798e2a359ea2d3a99c4a9cf4741cf275.png](https://i-blog.csdnimg.cn/blog_migrate/eb8a8b9fa9ebd721dde756969f4996d5.jpeg)
- 前后端代码库分离
![21e9ba02c3dd3f5a7500b8b5f0605a1d.png](https://i-blog.csdnimg.cn/blog_migrate/07cea38c98985ae765d518ff7b4b1cb7.jpeg)
在传统架构模式中,前后端代码存放于同一个代码库中,甚至是同一工程目录下。页面中还夹杂着后端
代码。前后端工程师进行开发时,都必须把整个项目导入到开发工具中。
前后端代码库分离,前端代码中有可以进行Mock测试(通过构造虚拟测试对 象以简化测试环境的方法)的
伪后端,能支持前端的独立开发和测试。而后端代码中除了功能实现外,还有着详细的测试用例,以
保证API的可用性,降低集成风险。
Ⅲ 并行开发
![dbc51fb2538ff859bffb729b51a80fef.png](https://i-blog.csdnimg.cn/blog_migrate/23458d5d371ae6d470abab959c8db69c.jpeg)
在开发期间前后端共同商定好数据接口的交互形式和数据格式。然后实现前后端的并行开发,其中
前端工程师在开发完成之后可以独自进行mock测试,而后端也可以使用Postman等接口测试软件进行接口
自测,然后前后端一起进行功能联调并校验格式,最终进行自动化测试。
Ⅳ 分离后的开发模式
![4c58d03d867ad256c7c604e8057b83a8.png](https://i-blog.csdnimg.cn/blog_migrate/b11683b2e2cdd43603cf8e765c590305.jpeg)
![752ae7b3e7c605cf40d4cb16f23285c2.png](https://i-blog.csdnimg.cn/blog_migrate/f31828504196814a8b5bd7f9fc9e9f18.jpeg)
Ⅴ 前后分离的优点
- 为优质产品打造精益团队
通过将开发团队前后端分离化,让前后端工程师只需要专注于前端或后端的开发工作,是的前后端
工程师实现自治,培养其独特的技术特性,然后构建出一个全栈式的精益开发团队。
- 提升开发效率
前后端分离以后,可以实现前后端代码的解耦,只要前后端沟通约定好应用所需接口以及接口参数,便
可以开始并行开发,无需等待对方的开发工作结束。与此同时,即使需求发生变更,只要接口与
数据格式不变,后端开发人员就不需要修改代码,只要前端进行变动即可。如此一来整个应用的开发效率必然会有质的提升。
- 完美应对复杂多变的前端需求
如果开发团队能完成前后端分离的转型,打造优秀的前后端团队,开发独立化,让开发人员做到
专注专精,开发能力必然会有所提升,能够完美应对各种复杂多变的前端需求。
- 增强代码可维护性
前后端分离后,应用的代码不再是前后端混合,只有在运行期才会有调用依赖关系。应用代码将会
变得整洁清晰,不论是代码阅读还是代码维护都会比以前轻松。