美团低代码方案的探索与实践

如果无法正常显示,请先停止浏览器的去广告插件。
分享至:
1. 美团低代码方案的探索与实践 李勇 美团 前端开发
2.
3. 自我介绍 百度 — 贴吧 2016 — 2018 负责贴吧智能版、PC版迭代 美团 — 成都研发中心 2018 — 2021 负责外卖CRM相关系统研发 主导项目WOLF,并成为公司公共服务 李勇 美团 — 医药技术部 2021 — 至今 医药成都前端负责人,负责ERP系统、运营平台等
4. • 聊聊低代码 • 背景与思路 • WOLF平台的设计与实现 • 演进方向与规划
5. 先聊聊无代码 高代码 灵活性高 灵活性低 低代码 ⻔槛高 • 无代码更加适合垂直的场景 ⻔槛低 • 无代码的用户一般是非开发者 无代码
6. 一些成功的无代码 问卷 成功的关键 活动(易企秀) 聚焦 简单
7. 低代码的优势 高代码 灵活性高 低代码 ⻔槛高 灵活性低 ⻔槛低 兼顾了灵活性和⻔槛,同时提升了效率 无代码
8. 一些常⻅的低代码场景 企业中后台 数据领域
9. 低代码的用户是谁 开发者 前端开发 提效、扩展性强 后端开发/外包开发 赋能、学习成本低
10. 思考 如何做一个企业级的低代码开发平台(生态) • 聚焦领域,且这个领域的市场足够大 • 分⻆色,能够针对不同⻆色设计方案 • • 前端:强扩展性,能够满足不同技术栈、UI • 后端/外包:上手⻔槛低 可共建,让更多的人参与进来
11. 更重要的事 第一步:打开冰箱 第二步:把大象放进去 需要一个可执行的步骤 第三步:关上冰箱⻔
12. • 聊聊低代码 • 背景与思路 • WOLF平台的设计与实现 • 演进方向与规划
13. 我们面对的场景 业务 给内部人员/合作商提供运营和管理工具 • 特征 • • • • 同质性高 ⻚面量大(500+) 技能瓶颈(部分后端项目无FE) 公司有很多部⻔跟我们类似 思路 设计针对中后台场景的低代码方案
14. 思路 先做MVP版本,建设核心能力,再对外赋能 低代码的核心 — 渲染引擎
15. 迭代路径 开发框架/渲染引擎 • Low-Code • 服务前端开发 • 支撑现有业务 低代码开发平台 • LCDP • 服务前后端/外包开发者 • 支撑多种业务 生态链共创 • Ecology • 服务多种⻆色 • 多场景覆盖,生态闭环
16. • 聊聊低代码 • 背景与思路 • WOLF平台的设计与实现 • 简介 • 渲染引擎设计 • 低代码平台设计 案例介绍 • • 演进方向与规划
17. 简介 WOLF是一个面向中后台的低代码开发平台 特点 高效率 丰富物料、秒级发布、代码提示、… 强扩展 组件扩展、渲染引擎扩展、多开发模式、… 稳定性 前后端监控、版本绑定、端分离、… 阶段成果 150+团队 800+开发者 700+项目 3000+⻚面
18. 功能简介 创建 开发 联调 发布 集成 运营 物料市场 在线开发 代理 一键发布 ⻚面集成 监控报警 项目创建 可视化开发 接口调试 跨环境发布 应用集成 自动打点 ⻚面创建 本地开发 组件联调 回滚 域名绑定 流量分析 CLI工具 组件开发 Mock 调试工具 权限
19. 功能简介 可视化搭建 事件编排
20. 功能简介 组件市场 线上系统
21. • 聊聊低代码 • 背景与思路 • WOLF平台的设计与实现 • 简介 • 渲染引擎设计 • 低代码平台设计 案例介绍 • • 演进方向与规划
22. 演进路径 开发框架/渲染引擎 • Low-Code • 服务前端开发 • 支撑现有业务 低代码开发平台 • LCDP • 服务前后端/外包开发者 • 支撑多种业务 生态链共创 • Ecology • 服务多种⻆色 • 多场景覆盖,生态闭环
23. 什么是渲染引擎 渲染引擎作用 Schema • 提供一个Schema规范 • 提供组件规范 • 提供核心:事件/联动/数据流 RenderEngine • 提供公共功能(utils、hooks) • 提供核心组件 Page/Component
24. WOLF渲染引擎的架构 • 易用性 • 性能 • 扩展性
25. 渲染引擎-易用性-场景抽象 策略:将业务场景进行固化,兼顾通用性和易用性 搜索区域 批量操作区域 数据展示区域 分⻚区域
26. 渲染引擎-易用性-场景抽象 设计思路:在一定限制条件下,做到可灵活配置
27. 渲染引擎-易用性-行为抽象 父子行为 优势 1. 父元素不用关心子元素位置 2. 子元素不用关心谁来处理事件 模拟事件冒泡
28. 渲染引擎-易用性-行为抽象 跨组件行为 1. Model动态注册到全局 2. 全局行为共享 动态Model
29. 渲染引擎-易用性-行为抽象 组合与分支行为 原子行为(20+) 通用行为 ajax、confirm、.... 弹窗相关 dialog、close、… Form相关 submit、reset、… 组件间交互 reload、send、... 异步任务队列
30. 渲染引擎-性能 背景 部分场景对性能要求较高 问题 1. 公共功能的抽取 2. 数据流更新导致重渲
31. 渲染引擎-性能-公共功能 问题 HOC:会导致组件嵌套层次很多 Hooks:1. 限制函数组件 2. 逻辑没有减少 常⻅的两种方案 原因 无法提前知道组件需要什么功能, 导致把所有功能都包装在一起 HOC Hooks
32. 渲染引擎-性能-预处理 解决方案 预处理机制将属性转化为HOC 优势 去掉无效逻辑
33. 渲染引擎-性能-数据处理 方案 分场景有效结合两种方案,追求易用性与性能的平衡。 易用 性能
34. 渲染引擎-性能-性能对比 1000个表单,并且还有联动的情况下,输入8个⻓度的中文,脚本执行时间 3 2.25 2.7秒 1.5 0.75 0 0.82秒 开源方案A 开源方案B 0.51秒 WOLF
35. 渲染引擎-扩展性 扩展场景 1. 我有自己UI组件规范,如何接入? 规范扩展 2. 能支持移动端么? 移动端适配 3. 定义的事件满足不了我的需求,如何自定义? 自定义事件 4. 我只想用你的一个组件,不想整套使用 5. 我想扩展一个自定义组件 6. 我的组件想跟你的组件交互,如何解决? 7. … 独立使用 自定义组件 组件交互
36. 渲染引擎-扩展性 1. UI库分离 2. 底层复用、上层扩展 优势 1. 移动端适配 2. 多UI组件库 3. 核心DSL统一
37. 渲染引擎-扩展性 方案 1. Model、UI分离 2. Model动态注入,全局共享(需要申明) 优势 1. 全局状态/动作共享 2. 更方便扩展组件
38. Case-渲染引擎-扩展性 举个例子 在事件流程过程中,进行事件干预 方案 通过参数model、dispatch拿到任意组件状态和动作 通过Promise的状态来等待、继续、中断事件流
39. • 聊聊低代码 • 背景与思路 • WOLF平台的设计与实现 • 简介 • 渲染引擎设计 • 低代码平台设计 案例介绍 • • 演进方向与规划
40. 演进路径 开发框架/渲染引擎 低代码开发平台 • Low-Code • 服务前端开发 • 支撑现有业务 • LCDP • 服务前后端/外包开发者 • 支撑多种业务 • 前端⻔槛对后端/OD不友好 • 让开发者聚焦根本任务 生态链共创 • Ecology • 服务多种⻆色 • 多场景覆盖,生态闭环
41. 整体架构 • 扩展性 • 易用性 • 稳定性 • 兼容性
42. 扩展性-组件扩展 一个完整的开发环境,应具备哪些功能? 项目文件管理 + 文本编辑器 + 交互式终端 + 项目脚手架 + 运行任务 + 调试器 + 工具插件 + …分支管理 本地开发 成本更低 云IDE
43. 扩展性-组件扩展 方案一 本地开发,上传进行联调 问题:不断上传 -> 测试 -> 上传? 方案二 本地起平台Server,模拟线上环境 问题: 1. 有些状态很难模拟,比如域名 2. 无法保证线上线下一致性
44. 扩展性-组件扩展 如何实现补丁式的组件开发体验? 本地开发 远程调试
45. 扩展性-组件扩展 通过本地开发、远程调试,实现直接复用⻚面上下文 WOLF-Platform WOLF-CLI JSX Less … Page1 Compiler RenderEngine … DSL Custom-Component Plugin Context Page2 Server Event Center Module Module WebSocket Editor
46. 扩展性-渲染引擎扩展 背景 多部⻔规范不一致 多部⻔技术栈不一致 有部⻔已有渲染引擎 兼容移动端 平台支撑 向 上 优势 扩展任意渲染引擎 技术栈无关 移动端适配 向 下 底层复用
47. 易用性-多开发模式 开发模式 针对不同⻆色和场景,设计更加适合的开发模式 并且针对单项目可并存多种开发模式 配置编辑(后端/前端) 可视化编辑(后端/前端) 本地开发(前端)
48. 易用性-本地开发 本地开发要解决什么问题? 可视化搭建对前端来说并不友好,尤其在面临较为复杂的场景时 设计模式 灵活 协作 文件结构、变量 Less、TS、VSCode Git
49. 易用性-本地开发 本地开发架构设计 本地开发,远程浏览 本地开发优势 满足易用性的同时,兼顾灵活性
50. 稳定性 监控报警 版本绑定 端分离
51. 稳定性-版本绑定 编译型 编译 配置 ⻚面1 解释型 ⻚面2 源码/⻚面 ⻚面3 Render V1 配置1 ⻚面4 Render V2 配置2 配置3 配置4
52. 稳定性-端分离 方案 平台分为管理端、预览端 内网开发、外网浏览 优势 安全性提升 —> 内外网隔离 稳定性提升 —> 独立服务,单独发版 扩展性提升 —> 私有化部署
53. 兼容性-分场景兼容 现状 解决思路 各种各样的系统,技术栈不一致,UI不一致 分情况,做到应用级、⻚面级、组件级低代码 应用级 自定义菜单 自定义域名 微前端 ⻚面级 自定义模板 JS-SDK 组件级 Iframe Npm包
54. 兼容性-微前端方案 背景 1. 兼容老系统、老⻚面,完成系统的入口统一 2. 兼容不同渲染器或不同版本 微前端容器 子⻚面 子⻚面 子⻚面
55. • 聊聊低代码 • 背景与思路 • WOLF平台的设计与实现 • 简介 • 渲染引擎设计 • 低代码平台设计 案例介绍 • • 演进方向与规划
56. 案例介绍-内部系统1 配置⻆色 后端(赋能) 核心技术点 CRUD、表单联动、图表展示、自定义菜单
57. 案例介绍-内部系统2 开发⻆色 后端(赋能) + 外包(降本) 核心技术点 大表单(500+)、自定义菜单、多渲染引擎
58. 案例介绍-内部系统3 配置⻆色 后端(赋能)+外包(降本) 特色 微前端容器、多开发模式、自定义组件
59. 案例介绍-内部系统4 配置⻆色 前端(提效50%) 特色 ⻚面级接入(自定义模板)、本地开发、大表单(500+)、移动端兼容
60. • 聊聊低代码 • 背景与思路 • WOLF平台的设计与实现 • 简介 • 渲染器设计 • 低代码平台设计 案例介绍 • • 演进方向与规划
61. 生态链共创 开发框架/渲染引擎 • Low-Code • 服务前端开发 • 支撑现有业务 低代码开发平台 • LCDP • 服务前后端开发者 • 支撑多种业务 生态链共创 • Ecology • 服务多种⻆色 • 多场景覆盖,生态闭环
62. 更多的开发者加入 期望更多的开发者加入,基于同一套基础DSL DSL 官方渲染引擎(内部开源) React ARender-Antd ARender-Roo 其他渲染引擎 Vue React Vue Cheese Cell Wolfify
63. 更多的⻆色加入 1. 打通底层物料体系,消除⻆色之间的Gap 2. 自动代码生成,减少静态代码重复编写
64. 跟后端打通 思路 1. 利用元数据中心打通数据层 2. 利用流程与接口中心完成接口与流程定义 3. 自动生成前端代码
65. 支持更多垂直场景 想要一种方案满足所有需求是不可能的 通过提供底层能力,满足各种场景的低/无代码方案 单领域做深 场景赋能 运营搭建 问卷搭建 营销搭建 流程搭建 底层基建 组件 拖拽 托管 后端搭建 多场景做宽
66.
67.

Home - Wiki
Copyright © 2011-2024 iteam. Current version is 2.139.0. UTC+08:00, 2024-12-24 03:01
浙ICP备14020137号-1 $Map of visitor$