[面经汇总]Web

概念

什么时MVC

Model/View/Controller,模型视图控制器的缩写是一种软件设计规范;将数据模型,界面显示与业务逻辑之间分离,将众多业务逻辑聚集到一个组件,后续优化个性定制不需要重新编写业务逻辑以达到减少编码时间的目的

什么是MVVC
  • MVC是后端开发的分层概念
  • MVVM是前端视图分层的概念关注于视图层分离,MVVM将前端视图层分为Model/View/ViewModel
  • Vue以数据为驱动,自身将DOM和数据双向绑定,每当数据变化DOM也会变化,VM就是Vue的一个实例
前后端分离
  • 前后端不分离时,前端页面也是后端控制渲染,耦合度高,业务逻辑复杂的系统中,前后端代码混杂,MVC每一层都可能混杂其他层代码,毫无维护性科研,前后端分离可大大缓解这种现象

  • 前端需要的数据由后端通过异步接口方式提供,前端只负责数据的渲染展示;后端提供接口前端调用触发后端数据操作

  • 后端可以Java,可以C/C++开发,前端基于Vue+ElementUI快速搭建SPA

  • 优点

    • 前端代码不再嵌入后端代码,前后端松耦合,提高代码可读性
    • 分工明确,前后端并行开发提高效率
    • 前后端分离也不易出现版本之间不兼容的问题
    • 降低了维护成本
微服务
  • 传统开发模式下,绝大部分Web应用采用单体架构构建,Web应用作为单个可部署的软件制品交付,所有接口业务逻辑持久层打包在一个Web应用并且部署在一台服务器上,随着应用规模复杂度增长,高耦合度的Web开发会导致开发优化维护的难度越来越大,同时整个应用都需要重新构建测试和部署
  • 微服务本质在于分布式和去中心化,分解应用功能,将一个大型服务拆分成多个小服务彼此独立且可相互通信
    • 改进了模块化,允许小型自治团队并行化开发测试部署
    • 各个服务开发,测试,部署彼此独立,单个用户量大的服务可单独进行负载
    • 新需求时由于高度的解耦,不用考虑兼容性影响度
    • 只需要保证独立服务对外接口正常可用,语言,技术框架没有限制,大大开放了技术自由
如何实现session共享,用redis如何实现(重点)
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页