传统开发痛点:

  • 前后端无法做到并行开发

1、前端需要后端环境的支持

2、html放在Server的模板引擎中,前端与html的操作难度提升,bug的出现和解决与前端不能第一时间操作到html而引起。

  • 如果不使用代理,必须本地搭建Server环境

  • 前后端沟通成本增加

  • Server需要关注模板里的渲染内容

  • 前后端职责没有完全解耦

解决方案:

基于Node的前后端分离

  • 理想的前端

图片描述

怎么做前后端分离?

图片描述

  • 前端:负责View和Controller层

  • 后端:负责Model层,业务处理/数据等

图片描述

  • 优势

1、url design (遵循Restful API)
2、我们可以根据场景决定在服务端同步渲染,还是根据view层数据输出json数据
3、Bigpipe,Comet,Socket...可以根据具体业务自主选择

回归问题

1、前后端可以并行开发

后端不会和前端产生直接的通信,是通过Node层产生2次通信,然后才会产生数据交流。服务端只需要和Node层制定好通信数据格式,具体用什么格式返回给前端由Node层自己决定。解放了后端的view、control层,同时前端的自由得到了解放。

环境:在本地启Node环境就可以;

html: 交给Node层管理由前端管理,对性能的优化更便捷,比如(缓存、React服务端渲染)。自主的选择是通过同步的方式输出页面还是异步的方式。总而言之就是前端自由了!

2、在本地搭建Node环境就可以了,不需要JAVA、PHP了。

3、前后端沟通的成本就只有数据的交换的层面了,而且还是Node层的。

4、Server放开了对View层的掌控。

5、解耦前后端,后端更注重业务,前端掌控了html、router。


caozheng550
369 声望19 粉丝

不忘初心,不畏将来!