面试时介绍前端架构(2022年5月)

385 阅读1分钟

面试让介绍以下项目的架构,没有准备的问题回答的很差,一个原因是临场反应差,还有一个原因是一直都是自己一个人摸索,对于前端架构的概念了解比较少,都是实用为主,先把思路写出来,后续慢慢改进。

前后端分离

项目使用前后端分离的方式,前后端通过 RESTFul 接口和 WebSocket 进行交互,接口文档使用 Swagger 维护。

Monorepo

前端项目使用 yarn workspace 的方式进行管理多页应用,应用使用 create-react-app 搭建,分为工具库、services 、多个产品应用和组件库。

工具库

工具库提供业务无关的能力给上层调用,使用 class 抽象与后端交互、登录鉴权等共用逻辑、WebSocket 通信、Janus 信令交互以及 WebRTC 设备管理和 MediaStream 管理的共用逻辑。

Services

services 实例化工具类,提供接口给上层调用。

应用

应用基于 React 开发,使用多页应用的方式隔离不同角色访问的内容。

使用 Redux 、useState 和 useReducer 做为 Model 层,Redux 中存放全局共享的状态,useState 或者 useReducer 中存放局部状态;React 组件作为视图层,负责内容渲染;使用 useEffect 作为控制层,监听状态变化后进行业务处理。

应用中使用 react custom hooks 拆分状态和复用业务逻辑代码。

组件库

在 ant-design 的基础上封装了一些业务无关的共用组件提供给多个应用使用,Reactjs-player 是其中最复杂的,源码放在 Github 上了。