整体架构设计 V1.0

需求

模块设计

模块拆分:

  • B端和编辑器(前端,后端)
  • H5(ssr)
  • 管理后台(前端,后端)
  • 第三方组件库:为了保证 编辑器和 h5 组件渲染的一致性
  • 自研统计模块:为了满足项目个性化的统计需求

模块的关系图,关键功能及职责:

作品的数据结构

核心数据结构:

  • 组件数据结构尽量复合 VNode 规范
  • 用数组来组织数据,有序
  • 尽量使用引用关系,避免冗余
{
    // 作品
    work: {
        title: '作品标题',
        setting: { /* 拓展配置: 如配置渠道 */ },
        props: { /* 页面 body 的一些设置,如背景色 */ },
        components: [
            {
                id: 'xxx', // 每个组件都有 id ,不重复
                name: '文本1',
                tag: 'text',
                attrs: { fontSize: '20px' },
                children: [
                    '文本1' // 文本内容,有时候放在 children ,有时候放在 attrs 或者 props ,没有标准,看实际情况来确定
                ]
            },
            {
                id: 'yyy',
                name: '图片1',
                tag: 'image',
                attrs: { src: 'xxx.png', width: '100px' },
                children: null
            },
        ]
    },
    // 画布当前选中的组件
    activeComponentId: 'xxx'
}

数据流转关系图:

B端将创建好的作品存入数据库;C端从数据库中读取创建的作品,渲染页面;管理后台可以管控作品的显示。

扩展性保证

  • 数据结构层面
    • 页面级别的配置参数,如全局样式配置
    • 项目级别的配置参数,如提供分渠道统计的参数配置项
  • 编辑器层面
    • 组件的扩展性,如组件隐藏,锁定及图层操作

开发提效

  • 脚手架
    • 提供模板创建
    • CI/CD
  • 组件平台
    • 组件库的创建,发布和预览

运维保障(待补充)

  • 线上服务和运维服务
  • 安全
  • 监控和报警
  • 服务扩展性:流量大
Copyright © imooc-lego (2020 - present) all right reserved,powered by GitbookFile Modify: 2021-06-27 08:04:56

results matching ""

    No results matching ""