IVP 重构计划书¶
目录¶
- ivp 插件库
- 重构清单
- 文件树
- ivp-player
- ivp-core
- ivp-ui
- ivp app
- ivp 对内
- ivp service
ivp 插件库¶
重构清单¶
- 引入 storybook 开发模式
- 重新梳理 ivp-player, 与 ivp-app 解耦
- ivp-core 模块已经比较庞大,重新划分模块
- ivp-ui 更名为 ivp-components, 使用 compositionApi 模式
- 事件中心模式 / FSM 模式,重新梳理,避免造成内存泄漏
- 可参考 Fiber 机制,渲染算法优化
- 提供一些 debug API, 方便第一时间定位bug
文件树¶
└── packages
├── ivp-player
│ ├── ComponentPlayer.vue
│ └── AppPlayer.vue
├── ivp-core
│ ├── ivp-base 基类库
│ │ ├── fsms
│ │ ├── eventCenters
│ │ ├── services
│ │ └── daos
│ ├── ivp-models 模型库/核心算法库
│ ├── ivp-renders 图形绘制库
│ └── ivp-utils 工具库
├── ivp-components
│ ├── Configs.vue
│ ├── ...
│ └── DragAssets.vue
└── utils
├── produceScripts
├── collectInfos
└── computeXxxx
P.S. 应该去掉 ivp-core 这一层,单独打包,package.json 内建立依赖关系
ivp-player¶
- 维护基本配置
- 策略模式,提供给不同使用方(目前两个:ivp-app/ivp-ui)
ivp-core¶
- ivp-base 基类库
- base service/base dao 等,原来 ivp-core 的 service/dao 部分
- 事件中心 / FSM
- 目前感觉不是很必要,是否需要去掉,或重新设计
- ivp-models 模型库/核心算法库
- 抽象图形,行为,数据格式化等 (Graph/Node/Edge/Behavior/Payload/Config/State)
- 提供算法,纯计算
- ivp-renders 图形绘制库
- 目前 storyline graph, editor graph, 需要解耦一下
- 依赖 ivp-models, antv/g6
- 图形渲染
- 图形交互
- ivp-utils 工具库
- 提供纯函数,比如生成脚本,获取统计信息等高频公用工具
- 依赖 ivp-models
ivp-ui¶
- 更名为 ivp-components
- Options API 模式 + Composition API,组件之间低耦合高内聚
ivp app¶
- 单页面保存,且轮询查看资源状态,与 ivp-ui 通信的方式需要重新考虑一下。
- 样式都是固定值,全局覆盖,导致组件可扩展性有限
- vee-validator 引入,目前校验规则都是手写,也不太友好
- 错误提示不太友好,排查故障时造成困扰
ivp 对内¶
- ivp 插件库 重构完成之后,提供: 对外用户策略,爱奇艺号策略,对内编辑策略,审核策略
- 对内版本选择时机提出技术改造方案,进行升级
ivp service¶
- ivp 脚本生成方法目引入 ivp-core 的graph 模型,然后在 service 内计算。需要抽成以 ivp-utils 方式引入,保证各使用方同步。
- ivp service 链路过长,代理过多,是否有冗余部分