低代码如何解决B端复杂场景
如果无法正常显示,请先停止浏览器的去广告插件。
1. 低代码如何解决B端复杂场景
分享人 – 丁延强
部门: 58-HBG-商家前端技术部
日期:2022年12月06日
www.58.com
2. 个人观点
低码覆盖范围广、灵活度高,助力团队提效的持续性会更好
(做产品矩阵,而不是做孤岛系统;做航母平台,而不是做单一工具)
这个观点的来源是结合团队的业务现状,业务场景不仅仅是表单、列表、图表,更多的是相互组合,
以及相互组合带来复杂度
3. 对齐对B端复杂度的理解
1个表单页
I .业务逻辑复杂(3个特点)
组件节点多、嵌套层次深
a.
b.
c.
d.
e.
业务接口31个
用例100+个
第三方JS 18个、
弹窗12种形式
埋点50个
逻辑联动丰富
触发条件多样性、展现效果的多样性
4. 项目介绍
设计方案
技术难点
未来规划
5. PART 1
项目介绍
6. 项目背景
现状: 产业化升级带来的各类B 端产品需求激增,对前端资源的依赖达到了一个比较高的程
度,资源上容易出现瓶颈,影响业务快速迭代,需要改变当前的作业方式,来解放前端生产力
破局:
1. 职责分担,降低前端技术门槛,非前端可参与页面开发,工作转移
2. 场景复用,固定场景配置优先,复杂场景少量开发,减少重复工作
3. 协同开发,提升线上协同占比,减少研发链路,降低沟通成本
结论: 需要适配房产B端业务的低代码线上协作平台破局
低代码
线上协同
7. B端低码思考
绝大部分景覆盖
如何选择?
提效20%
提效50%
特定场景(5人)
仅新项目可用
顶层设计要整体提效
弃选择,要全部
大部分场景(50人)
提效20%
提效50%
特定场景高提效
大部分项目可用
大部分场景(50人)
全部项目可用
选择
全部
决策因素:
1.
2.
3.
4.
业务场景非常丰富
有大量存量项目
先特定再全部场景改方案风险很高
先全部再特定场景则顺理成章
8. B端低码思考
如何大部分场景覆盖?
传统开发
低码开发
30% 10% 100%
自定义能力 二次开发(持续) 落地
60%
平台能力
1. 可视化配置
2. 组件联动
1. 自定义组件开发
2. 线上JS编码
1. 补充低码能力的缺失
协作开发 逻辑编排 增加覆盖场景 补充能力缺失 覆盖更多场景
多角色参与 组件联动 支持接入物料 二次开发 存量项目落地
9. 技术调研
结论 :功能全的系统,使用成本高;使用成本低的,场景比较单一,和业务匹配度不高
市场上低代码系统,基本都无法完全满足要求,需要自己造轮子
平台 定位 特点 二次编码能力 协同开发 存量物料接入 逻辑编排 存量项目落地
Mendix Lowcode 全栈平台
覆盖B&C端 功能强大、
生态完整、
成本高且收费 ✔ ✔ ❌ ✔ ❌
✔ ✔ ❌ ❌ ❌
明道云 vs 轻流vs
宜搭
APICloud
Appsmith
vs
Nocode/Lowcode一 多流程、一站式
站式平台
多场景、模板丰富、
构建B端应用
收费
Lowcode
一站式平台
构建C端应用 跨端能力、
跨框架能力、
不适合B端 ✔ ✔ ❌ ❌ ❌
全栈低码 操作简单
生态完整
开源 ✔ ✔ ❌ ✔ ❌
倾向特定业务场景 更符合特定业务 ✔ ❌ ❌ ❌ ❌
PagePlug
集团内: 其他
10. PART 2
方案设计
1. 功能设计
2. 流程设计
3. 架构设计
11. 4
功能设计
应用管理中心
项目维度集中管理
提供测试、部署能力
1
5
物料中心
平台服务
组件、页面模板集中控制
组件库导入&更新
模板版本管理
2
设计器
可视化拖拽
可视化逻辑编排
线上JS逻辑补充
数据存储、
路由&接口服务
权限控制等
3
DSL+解析引擎
12. 项目展示
13. 开发流程设计
简单模式
新建项目
(应用管理中心)
产品经理
物料选择
(组件库、区块、模板)
页面设计
应用设置
(布局、需求描述、标记)
(主题、应用布局、菜单)
迭代开发
信息流转
(多个分支、多人协作)
标准模式
LowCode
创建低码项目
开发人员
创建分支
选择模板
预览&发布
(可视化搭建、业务逻辑编写) (Mock数据、流程部署)
(单人操作、配置为主)
物料流通
二次开发
专业前端
可视化搭建
Schema文件
开发组件 源码解析 源码物料:组件、区块、模板
(生成源码组件) (生成低码物料) 低码物料:组件、区块、模板
物料中心
DSL生成代码
应用源码
14. 开发流程对比
两大优点:
第一,能避免多次线下沟通,沟通线上完成;
第二,缩短开发周期,加快需求的交付速度。
15. 当页标题
架
构
设
计
16. PART 3
技术难点
• 如何支持组件逻辑联动?
• 如何存量项目落地&持续开发?
• 如何接入第三方组件库?
17. 组件逻辑联动(描述能力)
Page 页面
Form 表单
Field 组件
Field 组件
Field 组件
DSL 解析器
结构化描述 描述数据解析
18. 当页标题
DSL基本原则:协议驱动
1.输入框Source
布局描述
逻辑描述
2.输入框Target
3. Source等于123时Target
19. 存量项目落地&持续开发
方案的核心是让低码开发的产物和传统开发的JS文件做解耦
二次开发
低码开发
页面
表单
物料
基础
物料
业务组件库A
组件
组件联动
业务组件库B
自定义组件
物料补充能力
组件开发
持续开发
低码JS逻辑补充
逻辑补充能力
低码方式
业
务
组
件
组件
组件
DSL文件
Jsonschema锁定
?
model-parser
拓展能力
1. 上下文环境
2. 状态数据管理
3. 生命周期函数
4. 事件钩子
传统开发
二次编码
JS逻辑
补充逻辑
传统方式
20. 当页标题
锁定DSL
本地编码
配置信息
21. 组件库接入
物料中心
原子组件库(功能)
组件A
复合组件库(业务)
组件AB
组件B
组件C
组件挂载
注册
匹配
默认属性
组件BC
注册
属性匹配
最外层
Props设置
model-component-library.json
接入配置文件
已注册组件
默认属性
+
自定义属性
22. 配置文件
描述:
1. 组件库及组件属性信息
2. 组件属性设计器属性的匹配关系
23. 当页标题
·
24. 落地效果
基础组件 58 目前已落地 20+ 个项目
业务组件库 5 ,组件 80 实际需求 89 个
产出页面 120+
团队B端新页面可落地80+%
总体提效20-30%
2.5
17%
2
1.5
2
1.5
1
83%
0.5
0
常规页面
没落地页面
已落地页面
传统开发
墨斗开发
特点场景90%
45
40
35
30
25
20
15
10
5
0
40
4
30个页面前端工作量
传统开发
墨斗开发
25. 总结
低码覆盖范围广、灵活度高,助力团队提效的持续性会更好
(做产品矩阵,而不是做孤岛系统;做航母平台,而不是做单一工具)
第三方组件接入
低码逻辑编排
&JS补充
与存量结合
&持续开发
验证了两个问题:
第一,低代码应用在复杂场景的方案是可行的
第二,存量物料可接入低码体系,且低码对团队开发是有提效效果的
26. PART 4
未来规划
27. 后续规划
体验打磨
角色匹配功能: 根据角色定位,简化对应操作,降低学习成本
交互优化: 不断探索更合理的体验
功能&物料建设
丰富功能: 结合落地反馈,补充功能维度的缺失
场景物料沉淀:继续 沉淀更多场景化组件和模板,进一步降低0-1搭建页面成本
应用独立性拓展: 提供应用独立部署以及更丰富的自定义能力,提高项目落地的灵活度
落地推广
收集反馈意⻅: 结合落地反馈,不断优化
28. 谢谢