求助面试题,如何在项目中做好前后端的分离,具体实施计划是什么样的?还有ssr渲染

很常见一道面试题,虽然在晚上搜到大量的理论答案,但是我想知道在实际项目里是如何做好前后端分离的

ssr服务端渲染这个概念一直很模糊,在项目中具体的作用是什么?

阅读 2.8k
2 个回答

这种面试题我觉的算是开放性的问题了,要仔细说,东西太多了,如果要是考察的话,可能就是为了考察下实际工作中是否遇到一些坑以及解决办法吧,我就分享一些我遇到过的问题以及解决办法:

  • 首先第一点是先考虑项目需不需要前后端分离,如果是重前端类型的项目,比如网盘这种,那前后端分离确实可行,如果是博客这种内容驱动式的项目,就不要前后端分离了,没什么意义
  • 接口返回数据格式经常会遇到后端返回的数据不是前端所期望的,这种情况下不是后端改接口就是前端做数据处理,总之是经常会发生口角的地方,解决方法有很多,比如提前沟通并设计大家都满意的数据格式、做中间层服务(比较复杂的项目)、尝试一些带 schema 约束的接口规范,比如 json-restful 或者 GraphQL 等等
  • 我理解的前后端分离仅仅是代码逻辑上的分离,在实际工作中,还是要多和后端沟通,及时反馈一些项目实施过程中的问题,因为有些问题可能前端解决是可以的,有些问题后端解决可能更好,比如像一些权限方面的东西,最好不要在前端鉴权
  • 缓存我认为也是前后端分离中的一个大坑,这个就不展开说了,涉及东西太多
  • 如果是 SPA 还想在 SEO 上取得一些优化的话,还给整 SSR

具体 SSR 渲染的东西,我就不乱说了,因为真的是简单接触并做过一些小的 DEMO 项目,并没有真实线上项目的实践经验,坑也踩的少。

以上个人拙见,如有错误,还望指正。

前后端分离,即前端页面脱离后端服务也可以单独运行。
我从开发和上线两个部分简单说一下。

  • 开发

前端开发不再依赖后端服务,定义好数据结构和接口名称就可以了。
比如采用restful的模式:前端使用mock,后端使用swagger。
这样就不会由一端而影响另一端的进度。再者,后端可以同时支持web、移动以及第三方的系统。

  • 上线

前后端可以独立部署,不再将前端的文件放到后端的服务中。也可以更好的做负载等一些运维的操作。

再说说SSR,也就是服务端渲然。目前要在需要支持SEO的情况下,才会做SSR。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题