Upgrade to Pro — share decks privately, control downloads, hide ads and more …

基于 RxJS 构建稳健前端应用

Yadong Xie
December 25, 2021

基于 RxJS 构建稳健前端应用

To B 业务的生命周期与迭代通常会持续多年,随着产品的迭代与演进,以接口调用为核心的前后端关系会变得非常复杂。在多年迭代后,接口的任何一处修改都可能给产品带来难以预计的问题。在这种情况下,构建更稳健的前端应用,保证前端在长期迭代下的稳健与可拓展性就变得非常重要。本视频将重点介绍如何利用接口防腐策略避免或减少接口变更对前端的影响。

Yadong Xie

December 25, 2021
Tweet

More Decks by Yadong Xie

Other Decks in Technology

Transcript

  1. 前端迭代 WEB V1 API V1 接⼝迭代 产品迭代周期 初始版本 WEB V2

    API V2 第⼀次迭代 WEB V3 API V3 第⼆次迭代 Web Next API V4 第三次迭代
  2. API Server Web Applications OpenSource API V1 … OpenSource API

    V2 API V1 … API V2 Component Component … 接⼝变更对前端的影响 1. 返回字段调整 2. 调⽤⽅式改变 3. 多版本共存
  3. 更复杂的平台型 To B 业务 Platform Proxy Engine API Platform API

    V1 V2 … V1 V2 … Engine A V1 V2 … V1 V2 … Engine B … Engine B … Web Applications Component Component …
  4. 硬件 Hardware 固件 Firmware 依赖 软件 Software 依赖 HAL 后端通⽤语⾔

    Ubiquitous Language 前端通⽤语⾔ Ubiquitous Language 后端限界上下⽂ Bounded Context 上下⽂映射 Context Maps 前端限界上下⽂ Bounded Context 防 腐 层 硬件抽象层 Hardware Abstraction Layer 防腐层 Anticorruption Layer
  5. RxJS WebSocket Http Calls Async Data Sync Data Observable 1.

    统⼀不同数据源的能⼒:WebSocket、http、⽤户操作转换为统⼀的 Observable 2. 统⼀不同类型数据的能⼒:异步数据和同步数据统⼀为 Observable 3. 丰富的数据加⼯能⼒:丰富的 Operator 操作符,在订阅前进⾏预先加⼯ API
  6. Web Applications Component Component … Observables Observable Anticorruption Layer API

    Server OpenSource API V1 … OpenSource API V2 API V1 … API V2 OpenSource API V1 … OpenSource API V2 API V1 … API V2 API Server Web Applications OpenSource API V1 … OpenSource API V2 API V1 … API V2 Component Component …
  7. 调⽤⽅式改变 { requestId:string; data: number } { requestId:string; data: {

    free: number; usage: number; } } /api/v2 /api/v3 { requestId:string; data: number }
  8. 多版本共存 { requestId:string; data: number } { requestId:string; data: {

    free: number; usage: number; } } /api/v2 /api/v3 { requestId:string; data: number }
  9. 部署环境 A Web Applications Component Component … Observables Observable Anticorruption

    Layer API Server OpenSource API V1 … OpenSource API V2 API V1 … API V2 OpenSource API V1 … OpenSource API V2 API V1 … API V2 Web Applications Component Component … Observables Observable Anticorruption Layer API Server OpenSource API V1 … OpenSource API V2 API V1 … API V2 OpenSource API V1 … OpenSource API V2 API V1 … API V2 Web Applications Component Component … Observables Observable Anticorruption Layer API Server OpenSource API V1 … OpenSource API V2 API V1 … API V2 OpenSource API V1 … OpenSource API V2 API V1 … API V2 部署环境 B 部署环境 C