零代码赋能中后台产品研发实践

如果无法正常显示,请先停止浏览器的去广告插件。
分享至:
1. 零代码赋能中后台产品研发实践(云搭) 分享人 - 张玲吉 部门:58集团 – 商业生态与智能发展中心 !"#$%$$&'$(%)! www.58.com
2. 自我介绍 ?@A !"#$ %&'()*+,-./ 012345$67 89+:;<=>
3. 零代码赋能的背景及思考 平台方案设计 核心模块实现 效果展示 + 未来规划
4. PART 1 零代码赋能的背景及思考
5. 工作内容概览 近三年: BG工程化方向,主要对接中后台类项目 80+ 系统 系统类型 高业务 定制化系统 页面特点 业务逻辑复杂,多定制化场景。 案例系统 大型企业会员系统、 客服系统 ······ 30+中型项目 部分内容 可模型化 页面复杂度一般,部分页面内 常规表单中插入一个 容 可抽离通用场景模型。 交互复杂的嵌套表单 10+重型项目 可模型化 简单场景 基本上可以做到全量场景化。 常规列表页、 常规表单页 ······
6. 系统特点分析 为了高效对接,不同类型系统,不用应对方案 系统划分 (按页面量) 系统类型 解决方案 高业务 ProCode 定制化系统 源代码开发 方案描述 方案优点 约定标准化方案,使用 专业程度高,灵 WebIDE以源代码方式开 活性大,移植性 发应用 强。 方案缺点 容易形成人力瓶颈, 其他角色想帮忙也 使不上力,体验不 一致。 通过可视化工具自动生 相对ProCode可 有一定的上手成本, 案例 基于VSCode 开发的 简单场景 lowCode 成标准代码,辅助少量 以一定程度提升 开发者效率很大程 阿里 飞冰 可模型化 低代码 业务逻辑代码以满足业 开发效率,支持 度上受制于平台易 58 墨斗 务需求。 定制需求。 用性。 非技术同学也可 可模型化 NoCode 模型和标准化模板,通 以用,上手快, 简单场景 零代码 过线上配置工具,完成 交付快,犯错少, 系统的配置及发布。 体验一致。 部分场景 可模型化 20% 阿里 宜搭 定制性差,非标准 化场景实现起来比 较困难。 30% 50% 部分场景 赋能非研发人员,基于 高业务定制化系统 复杂业务系统 百度 爱速搭 腾讯 微搭 58 云搭 ······ 高业务定制化系统 部分场景可模型化 简单场景
7. PART 2 平台方案设计
8. NoCode 云搭 – 问题 & 产品定位 简单页面生产耗时 前端开发成本 测试 20% 产品、设计、技术、测试,针对产品实现的反复沟通对焦及转译 • 接口沟通约定调试,前后端协同成本占整体研发成本50% 开发30% 研发效率低 8% 交互 8% 样式 设计 15% • 逻辑 联调 20% 协同成本高 接口 • 处理大量重复性代码,效率低,质量参差不齐,维护成本高 7% • LowCode 开发及上手成本高,效率提升有限 7% 需求 交付产物不一致 15% 需求 设计 联调 测试 样式 交互 逻辑 接口 • 视觉效果不一致,用户体验不一致,前端实现不一致 • 页面交付质量得不到保障,不同页面可能出现不同的bug 以场景为中心:产品围绕场景设计、研发围绕场景搭建、API数据基于场景框架填充 以流水线式为出发点搭建全局最优生产模式:多角色一体化链路,非关键环节简化,关键环节升级 产 品 定 位 赋能 面相 产品、运营、设计、开发等 角 色的 系统在线生成平台 提效 集产品应用 创建、配置、发布 链路 一体化的 无代码平台
9. NoCode 云搭 – 平台简介
10. NoCode 云搭 – 平台简介 应 应 用 用 列 管 表 理 编 辑 器 平 台 文 档
11. NoCode 云搭 – 平台能力 表单页 筛选列表页 图表页 平台官网 文档系统
12. NoCode 云搭 – 平台能力 中后台系统 (列表、新建、编辑、详情、图表) 平台官网 非技术同学 非前端的技术同学 测试 产品 后端 ······ 客户端 文档系统 运营 UE UI ······
13. NoCode 云搭 – 整体方案设计 58 EIC & UXD 联合出品 需求方 联盟投放、商业推广、工程效能 联合研发 PRD生产 场景标准化沉淀 场景 物料 需求拆解 结构化PRD 前端 可二次编辑配置 设计 场景 模型 无代码页面生产 页面 Schema 页面渲染 创建应用 数据标准化定制 网关 模型 数据生产 创建页面 API 前端 后端 标准化生产 数据模型 业务 模型 发布上线 页面搭建者 数据规范 接口开发者
14. NoCode 云搭 – 研发流程设计 平台业务员 前端 文档输出 平台维护 功能迭代 站点管理员 新需求 前端 基线 迭代 应用开发者 产品/设计/研发/··· 创建应用 业务建模 应用管理 发布上线 创建页面 页面管理
15. NoCode 云搭 – 技术架构设计 产品搭建 aPaaS平台 扩展能力 中后台系统 搭建 页面管理 产品官网 搭建 应用设置 文档系统 搭建 高级设置 自定义域名 外部网站 搭建 业务建模 外部页面 嵌入 成员管理 多环境 (新建、编辑、生成模板、拖拽、排版、预览 ···) 筛选列表页 产品官网 iFrame页面 表单页 数据图表 文档 模块/组件 素材库 API 对接 模板库 设计中心 (框架、主题风格、权限、数据、渲染、交互、跨端 ···) 数据模型 ··· 产品中心 yun 渲染器 新建表单 列表页 编辑表单 图表 详情页 文档 素材中心 iFrame 官网 数据中心 ··· 服务中心 规范描述协议 JSON Schema 底层服务 NodeJs Koa2 Woody MongoDB Redis tms bsp Eslint ······ 产研中心 UI风格 logo定制 拷贝/层级 角色/权限 表单扩展 PV报表 生成链接 编辑/删除 预览/查看 发布/下线 yun 编辑器 低代码内核 权限设置 内部平台 搭建 Vue Element UI 美事 星图 足迹埋点 WOS ···
16. NoCode 云搭 – 功能模块设计 基础建设 aPaas服务 产研中心 基础规范 编辑器 物料中心 应用管理 页面管理 站点中心 应用中心 数据中心 场景规范 物料区 场景 框架/主题 新建页面 云搭首页 需求中心 站点数据 视觉规范 配置区 组件 Logo定制 编辑/删除 应用管理 框架渲染 应用数据 组件规范 画布/渲染 模块 项目属性 层级调整 页面管理 页面渲染 页面数据 数据规范 拖拽/增减 区块 使用场景 页面模块组 权限管理 页面权限 用户数据 ······ 预览/保存 模板 用户信息 页面拷贝 数据模型 操作权限 物料数据 模板操作 素材 角色/权限 发布/下线 应用渲染 ······ 性能数据 业务模型 ······ 自定义域名 预览/查看 场景中心 模型数据 画布截图 业务建模 PV报表 组件中心 数据权限 协同编辑 成员管理 复制链接 模板中心 ······ ······ ······ 展示权限 文档中心 ······ ······
17. NoCode 云搭 – 场景标准化定义 form.config 筛选区 按钮区 组件区 表格展示区 操作列 翻页器 提交按钮 筛选列表页 表单页 标准化定义:以场景页面为出发点,结合模块、组件、API数据等生成可用系统。 架构以场景为中心,方案围绕场景设计,页面基于场景搭建,API 数据结构根据场景定义。 标准场景定义遵循两个规范: • 按 UI体系 原子化设计 的粒度划分 (比如列表的固定结构) • 场景物料 和 场景控件 具有业务属性 (比如表单的提交接口地址)
18. NoCode 云搭 – 数据标准化定义 网关模型 场景模型 业务模型 接口网关固定的格式 场景需要的数据格式 业务定义的具体字段 Meta 元数据模型 字段名 类型 含义 字段名 类型 含义 字段名 类型 含义 code Number 状态码 data Object 数据主体 list Array 列表数据 msg String 提示信息 list Array 列表数据 name String 姓名 data Object 数据主体 page Number 页码 age Number 年龄 total Number 总条数 gender String 性别 pageSize Number 每页条数 city String 城市 • 网关模型:描述系统网关封装的数据结构,包含接口成功失败标识、提示信息、数据主体等。网关模型固定,对所有接口都适用。 • 场景模型:描述具体场景涉及的所有数据的结构,包括场景内固定的入参、返回值字段,以及通过场景配置引入的业务模型字段。 • 业务模型:描述实际业务中的概念、涉及对象及其属性,包括字段、类型、含义等。同一个业务模型可以用于多个产品页面。 • Meta元数据:描述数据的数据,对数据及信息资源的描述性信息,抽象描述动态展示实体(对模块、组件等数据的描述语言)。
19. PART 3 核心模块实现
20. NoCode 云搭 – ① 编辑器实现 列表、表单、图表、官网、文档、······ 截图 生成模板 新建页面 场景模型配置 编辑页面 ······ 文件锁 拷贝页面 预览 编辑模板 保存 ${page}.module.config.js 模块区 下拉框 时间组件 ······ 表格模块 分页模块 ······ PageJson (当前页面Schema数据) 遮罩 内容模块 尾部模块 ······ ······ 下拉框 单选框 ······ Form View Index View 验证属性 布局选择 ······ 筛选项 操作按钮 表头字段 ······ 官网配置项 Render Page View List View 通用属性 列表配置项 拖拽、增减 官网模块 头部模块 输入框 表单配置项 列表模块 筛选模块 YunDa editor 配置区 表单组件 输入框 拷贝模板 ··· ${page}.meta.model.js 素材图片 静态文案 动态数据 ······ ······
21. NoCode 云搭 – ① 编辑器文件锁方案 编辑器多人协同原理:Socket连接 + 文件锁 Socket 与 服务端 建立连接 访问数据(尝试获取锁) Client 存储以页面 id 为 key 的用户信息作为锁 返回状态锁 获取页面 id 为 key 是否有用户在编辑 Server Redis Socket连接 心跳保活 消息通信 方案 优点 缺点 典型案例 文件锁 避免覆盖、实现简单 非实时,同时刻只能单人编辑 实时要求不高的wiki系统 diff-patch 多人同时编辑,实现相对简单 非实时,易冲突 GNU diff-patch Myer算法 OT技术 实时编辑 实现较复杂 Google Docs 分布式OT 大规模多人系统 实现复杂 钉钉文档
22. NoCode 云搭 – ② 低代码渲染方案 运 行 时 渲 染 构建时渲染 页面描述 Schema 组件 页面 依赖/插件 运行时渲染 构建时渲染 Bundle 源码 页面 构建时,构建服务中完成 运行时,浏览器中完成 渲染方式 Vue Schema 方案 优点 缺点 平台功能迭代、修复 基础包chunk-vendors体 历史问题可及时全量 积相对较大(全部组件), 更新 影响性能 页面发布时,由服务端将Schema转化 保障当前页面稳定性, 构建环节存在不稳定因素, 为Vue源码,将源码打包为一份 平台后续功能迭代不 出现问题用户难以定位解 bundle文件,访问时在浏览器中执行。 影响该页面执行。 决;平台迭代更新不同步。 浏览器根据Schema渲染页面,不存在 预编译过程 适合业务场景 最终方案 B端,迭代需要全量 运行时渲染 更新的业务场景 路由懒加载 根据页面类型拆分路由 C端,稳定性要求高 的业务场景 少量注册全局组件 减小包体积 降低性能影响
23. NoCode 云搭 – ② 渲染器执行流程 地址栏 访问 云搭页面路径:/yd/${appId}/${pageId} } ?frameType=${value}&viewType=${value} appId -> 获取应用基础信息 应用配置数据:权限配置、重定向配置、全局请求配置等 UI层面数据 框架类型、风格、主题、logo类型、logo图片地址 UI-config 同步 vuex 全局数据 更新 HTTP 协议头信息 获取角色/权限数据 pageId -> 获取页面配置信息 角色权限列表 服务端 -> 数据访问权限校验 roleList 无权限 页面访问权限是否开启 404 无权限页面 页面可访问角色ID数组 页面访问权限校验 无权限 应用渲染(框架、列表、表单、图表、官网、文档、编辑、详情 ······) renderNav renderHeader renderPage
24. NoCode 云搭 – ③ 自定义域名背景 58公益基金门户网站 云搭生成地址:https://yunda.58.com/#/indexView/121/332 用户痛点:多参数,不美观 实际需求:更简洁,更语义化,便于传播 门户实际(期望)地址:https://gongyi.58.com/
25. NoCode 云搭 – ③ 自定义域名实现 【服务方】自定义域名 适用于 中后台系统 【云搭】配置页面 下载HTML模板 后端 部署 模板服务 域名 根路径 / 访问 【云搭】自定义域名 适用于 门户网站、文档系统等
26. NoCode 云搭 – ④ 业务建模背景 常规页面搭建流程(产品、后端协作完成) 数据库搭建 开发接口 搭建页面 业务建模搭建流程(产品全栈搭建) 在线建表 建页面 关联表 生成应用 接口联调 生成应用
27. NoCode 云搭 – ④ 业务建模分层模型 表管理 创建表 应用层 添加表字段 删除表字段 删除表 页面表关联 表应用 新建页面 添加表数据 选择表 删除表数据 更新表数据 更新表描述 更新字段描述 配置页面 表数据管理后台 保存页面 查询表数据 根据ID查询数据详情 服务层 modelApi ... ... 云搭API ... ... pageApi 表API(tableName) 数据层 appbinddata ... ... 云搭DB ... ... pageData 业务表DB
28. NoCode 云搭 – ⑤ 其他的一些注意点 平台展示、操作权限 超级管理员 管理员 普通用户 公有项目访问者 平台所有权限 归属项目增删改查 归属项目增改查 公有项目访问权限 权 http API 限 permission.config.js 成员 角色 中间件 页面访问 按钮操作 middleware.permission.js response 数据访问权限 权限点 生成应用权限
29. NoCode 云搭 – ⑤ 其他的一些注意点 做好埋点跟踪 完 整 的 文 档 体 系 收 集 反 馈 建 议
30. PART 4 效果展示 + 未来规划
31. NoCode 云搭 – 效果 – 平台数据 面相 产品、运营、设计、开发 等角色的系统在线生成平台 赋能 用户数:180+ 使用方:集团8个BG 用户角色:产品、运营、设计、后端、测试等 集产品应用 创建、配置、发布 链路一体化的 无代码平台 提效 有效应用数:200+ 有效页面数:1000+ (需求到上线:2人/日/页面) 提效:2000+人/日 (设计、开发、联调、测试) 云搭 · 零代码平台 58 EIC & UXD 联合出品 联盟投放、商业推广、工程效能 联合研发
32. NoCode 云搭 – 未来规划 跨 端 异 地 应 用 Yun-UI Low code 云搭 URL Html-template 用户体验 iFrame 面对质疑
33. NoCode 云搭 – 总结 确认好你的需求 1 服务的目标人群是谁?要解决什么场景的自动化生产?······ 稳步前进 2 切莫心急,拥抱变化,稳步迭代,不求 大而精,但求 小而美。 3 总结 数据驱动 做好数据监控,资源有限的情况下,做最有意义的的事儿。
34. 谢谢

Home - Wiki
Copyright © 2011-2024 iteam. Current version is 2.137.1. UTC+08:00, 2024-11-17 03:35
浙ICP备14020137号-1 $Map of visitor$