当前位置: 首页 > 后端技术 > Node.js

前后端分离模式

时间:2023-04-03 23:37:05 Node.js

早期的web开发是不区分前后端的。互联网进入Web2.0时代后,大量的网站从单纯的展示网站演变为类似于桌面软件的网络应用,网站前端也越来越复杂,逐渐形成了这样一个独立的行业。随着前后端分离,各种前端框架层出不穷,前端的能力也在不断增强。与后端相比,工作量越来越均衡甚至更多。为什么分开?我们不能“为了分离而分离”,而应该“为了真正理解web开发而分离,为了更好地完成需求而分离”。前后端分离的误区?1、前端人员配置是否充足?  因为公司之前的项目都是采用传统的开发方式,即后端基于MVC的开发模式,前端人员只提供静态html页面,其余工作由后端开发人员。采用前后端分离模式,可以减轻后台负担,加快研发效率。当然,前提是前端能做好。以往只需要提供静态页面的前端人员以前后端分离的方式负责项目的view+controller部分,即除了静态页面,还需要负责页面所有的交互代码,以及nodejs、view层、后端API的交互工作,无疑会增加前端人员的学习成本。没有足够的知识和人才储备,前端人员只能加班加点。结果是大量前端人员离职(PS:做这么多事情,工资肯定要涨!)2、前端和前端职责的分配?  很多公司认为,前后端分离后,前后端只需要通过指定的API进行交互即可。前端负责页面渲染,Nodejs负责路由分发,后端提供API。一大批重点工作被忽视,职责分工和细化处理没有相应的文件规定,缓存机制、图片上传下载、数据校验、语言国际化等方面也没有出台相应的信息。另外,很大程度上忽略了nodejs层的作用,只把nodejs当作路由中转。这也是对nodejs技术不熟悉造成的。其实nodejs可以负责很多事情,除了复杂的业务逻辑处理和数据操作由java来处理。很多工作完全可以在nodejs层处理。(PS:还是基础不够造成的!)3、后端API是Restful风格的吗?  很多公司采用前后端分离模式后,后端API仍然采用传统风格,这是不合理的。Restful风格的API应该是前后端分离的最佳实践。ResultFul推荐每个URL都可以操作特定的资源,能够准确描述服务器对资源的处理动作。通常,服务器支持get/post/put/delete/etc。如果前后端分离的话,这些api-url就是对接的桥梁,resultFul接口的地址的含义就更加清晰明了。(PS:我用了Spring4.x后也不能证明rest风格是对的)4.前后端协同模式?  前后端分离后,无论是API接口的对接,还是测试工作,都涉及到前端与前端人员的沟通。很多公司采用前后端分离后,前后端协同模式不充分,相互等待,开发效率低下。相反,它不如传统的开发模式。比如:当后端API没有写的时候,前端无法调试,导致前端会被后端阻塞的情况。其实这种等待模式还有待改进,MockServer或许可以解决一些问题。如何分离前后端?如何分离前后端?大方向是  后端侧重于:后端控制层(RestfulAPI)&服务层&数据访问层;  前端重点:前端控制层(Nodejs)&视图层  我觉得前后端分离模型应该是这样的,当然这不一定是正确的:  1。在项目设计阶段,由前后端架构负责人对项目进行整体分析,讨论确定API风格、职责分工、开发协助方式,确定人员配置;设计确定后,前后端人员共同制定开发接口。  2。在项目开发阶段,前后端分离,各自分工,协同敏捷开发,后端提供RestfulAPI,并给出详细的文档说明,前端人员执行页面渲染前端的任务end是发送API请求(GET、PUT、POST、DELETE等)获取数据(json、xml)并渲染页面。  3。项目测试阶段,API完成前,前端人员使用mockserver进行模拟测试,后端人员使用junit进行API单元测试,互不等待;,当然不是所有的接口都可以预先定义好,有些是在开发过程中调整的。  4。在项目部署阶段,使用nginx作为反向代理,即Java+nodejs+nginx。参考课程分享:直播时间:2018.07.158:00~10:00pm后端分离实践前新前端能力课或加入企鹅群:707871733领取资料