研发提效 2.0:设计稿转代码的探索与实践之路

如果无法正常显示,请先停止浏览器的去广告插件。
分享至:
1. 研发提效 2.0:设计稿转代码 的探索与实践之路 李伟涛 京东资深前端开发工程师
2. 李伟涛 https://github.com/luckyadam 2013 年加入百度·贴吧 2015 年加入京东·凹凸实验室 负责 Taro/Deco/Nerv 等工具及业务的研发管理
3. • Content Title 2 • Content Title 3 • Content Title 4 • Content Title 5 • Content Title 6
4. 1. 研发提效还能怎么做 2. 如何将设计稿转为静态代码 3. 为静态代码注入灵魂 4. 业务落地实践 5. 总结与展望
5. 1. 研发提效还能怎么做
6. 我们面临的问题 个性化需求井喷 研发效率提升瓶颈明显 研发资产沉淀缓慢 业务快速增⻓以及千人千面带来的挑战 传统研发模式在提效上遇到瓶颈 低代码平台需要大量组件以满足各种需求
7. 研发提效三阶段 阶段二 阶段一 多端统一开发 一份代码多端适配思想带来效率 爆发式提升 极致的工程化 基于工程化思想为研发带来效率提升 阶段三 ?
8. 研发提效三阶段 阶段一 阶段二 阶段三 更快地写代码 一次性写出多平台代码 少些甚至不写代码? 组件化/复用/工程工具/研发流程 Taro/uni-app/kbone/Remax 基于工程化思维的传统提效方式
9. 研发提效三阶段 基于组件模板的低代码模式 01. 组件物料增⻓缓慢 02. 无法及时满足个性需求
10. 探索设计稿自动生成代码的解决方案 智能代码 设计稿一键生成多端代码 面向个性化研发场景的研发交付提效解决方案
11. 2. 如何将设计稿转为静态代码
12. 设计稿转代码方案探索 生成 设计稿 代码
13. 设计稿转代码方案探索 导出设计稿数据 处理设计稿数据 将数据转换为代码 代码 设计稿 三大诉求 还原度 合理性 可读性
14. 设计稿转代码方案探索 设计稿精准还原 代码结构合理 类名语义化
15. 将设计稿数据处理成我们需要的格式
16. 设计稿数据处理 设计稿 获得结构描述数据 • 节点之间的结构特征 • 节点自身的 UI 特征 • 节点自身的逻辑特征 • 等等...
17. 设计稿数据处理 Step 1 图层解耦处理 设计稿 Step 2 蒙层处理 Step 3 Step 4 Step 5 无用图层检测 智能图层合并 图片 CDN 化 Step 6 文字导出处理 信息数据
18. 使用布局算法将设计稿数据还原为结构良好的代码
19. 布局还原算法 布局算法 设计稿信息数据 如何成组 • 还原设计稿 • 布局结构 • 结构合理化 • 样式合理化 如何正确成行成列 代码结构 样式合理计算
20. 布局还原算法 设计稿数据 节点预处理 输入数据 空间布局 布局算法 调用布局算法 投影布局 背景图布局 输出结果 特征布局 坐标布局 样式计算
21. 布局还原算法-节点预处理 容器节点 图片节点 设计稿信息数据 文本节点
22. 布局还原算法-空间位置成组 相离 相交 包含 根据『相交面积』大小判断位置关系 相交(外切) 包含(内切)
23. 布局还原算法-投影算法切割行列 投影原理 光线 需要投影的节点 投影结果
24. 布局还原算法-投影算法切割行列 同层级元素投影 使用 Cavas 绘制水 平、垂直方向投影 投影分割计算 节点筛选 根据颜色区块、透 明区块进行分割 基于四叉树算法进 行节点区域内坐标 碰撞检测
25. 布局还原算法-背景图算法推断图片背景 能够「包含」子元素的图片节点
26. 布局还原算法-特征检测增强可用性 成组关系不当 行列划分不当
27. 布局还原算法-特征检测增强可用性 列表检测 Tab 检测 价格检测 Border 检测 基于向量计算相似度 规则匹配 Tag 标题 检测
28. 布局还原算法-自动修复算法提升还原度 开始 布局算法 布局规则 纠错布局 预渲染节点 节点绝对定位 节点坐标对比 布局结束 基于 puppeter 预渲染节点,判断布局是否正确 局部错位
29. 让代码具备语义化
30. 代码语义化处理 布局后的数据 语义规则引擎 基础语义规则 样式 上下文 语义化引擎推理 AI 协助处理 组件 文字分类 图片分类 翻译服务 节点类名语义化
31. 代码语义化处理 goods goods_img goods_tit interest price oriprice goods_btn
32. 生成代码
33. 支持各类 DSL 及拓展 Vue AST 经过布局、语义 的数据 通用数据 JS AST 自由拓展
34. 支持各类 DSL 及拓展
35. 设计稿处理 设计稿 布局算法处理 语义化处理 静态代码
36. 3. 为静态代码注入灵魂
37. 需要还原的部分 需要还原的部分 可复用的部分 基础组件 可以复用的部分 UI 控件 ICON HTML 业务组件 可以复用的部分 需要还原的部分 商品 店铺 优惠券
38. 组件智能识别映射方案
39. 组件智能识别映射流程 设计稿图片 ⻚面分割 UI 区块识别 DOM 树 节点映射 组件分类识别
40. 组件智能识别—⻚面分割 将⻚面分割为高度适中的若干图片 边缘检测 轮廓提取
41. 组件智能识别—UI 区块识别 识别出图片中包含的 UI 区块 目标检测 基于 Mask R-CNN
42. 组件智能识别—节点映射 识别区块 DOM 节点 将识别区块映射成 DOM 节点
43. 组件智能识别—组件分类 制作分类样本 使用 Mobilenet 模型 模型训练 模型调参 模型上线
44. 提升组件识别准确率 01. 样本优化 02. 模型调参 03. 多层级识别方案
45. 组件识别映射落地
46. 通用的组件智能识别映射
47. 组件识别能力可以开放给多业务使用 大促活动 营销活动 组件库 A 中后台 组件库 B 组件识别映射能力 PC 频道 平台类业务 组件库 C
48. AI 能力开放平台
49. AI 能力开放平台
50. 设计稿处理 设计稿 布局算法处理 语义化处理 组件智能识别 包含组件复用的静态代码
51. 4. 业务落地实践
52. 如何在真正业务中进行落地?
53. 落地实践三诉求 无侵入 高效率 平台化
54. 一站式在线研发工作台 项目管理 项目设置 可视化干预编辑器 代码下载
55. 算法处理 插件操作 数据解析 布局算法处理 语义化处理 组件智能识别 工作台二次编辑 样式调整 节点调整 属性调整 组件替换 生成代码
56. 能否生成业务逻辑?
57. 扩展工作台增加人工可视化逻辑处理 工作台二次编辑 样式调整 节点调整 属性调整 组件替换 组件化 生命周期处理 属性设置 事件绑定 循环体处理 字段绑定 智能提示 组件多态 埋点上报 组件懒加载 二次布局 智能提示 异步数据请求 NPM 包引用 Context 上下 文
58. 扩展工作台增加人工可视化逻辑处理 组件化
59. 扩展工作台增加人工可视化逻辑处理 异步数据请求面板
60. 扩展工作台增加人工可视化逻辑处理 带智能提示的字段绑定
61. 扩展工作台增加人工可视化逻辑处理 循环体处理
62. 扩展工作台增加人工可视化逻辑处理 全局处理函数
63. 将 Sketch 设计稿处理成所需数据 可视化人工干预工作台 基于智能算法处理设计稿数据 1 支持生成多 DSL 代码进行二次开发 智能组件识别 图层/画板 JSON 数据 ⻚面分割 区块识别 节点映射 组件识别 编辑器 还原度对比 预览模式 代码预览 底层能力 插件处理 边缘 检测 插件上传 节点树 轮廓 提取 图像 分类 AST 处理 目标 检测 多 DSL 支持 设计规范检查 2 空间布局 组件识别 智能布局算法 投影切割 插件处理 背景图算 法 组件替换 一键替换 组件入参 二次识别 特征布局 默认支持 React/Vue 3 symbol 处理 矢量图 合并 蒙层 剪裁 智能语义处理 组件化 节点遍历 通用规则 AI 规则 数据集管理 图层 打平 事件绑定 循环体处理 + 定制 DSL 无用图 层处理 样本制造机 属性设置 规则聚合 底层能力 样式 提取 生命周期处理 同时支持生成 Taro 多端代码 文本 分类 数据标注 文本 翻译 模型训练 OpenC V 图片 分类 模型评估 字段绑定 智能提示 组件多态 埋点上报 组件懒加载 二次布局 智能提示 异步数据请求 NPM 包引用 Context 上下文 模型部署 测试集 测试用例 测试任务 UI 兼容性测试 支持生成单模块代码 还原结果测试 支持定制化项⺫模板 测试结果
64. 大促活动大规模投入使用 0 1 2 3 4 5 6 7 传统流程 设计用时 … ⻚面开发用时 逻辑开发用时 交付/发布 智能流程 设计用时 交付/发布 智能代码、二次编辑 平均单个模块节约 48% 左右研发时间
65. 5. 总结与展望
66. 近期规划 01. 智能化布局和语义处理升级 基于 AI 算法让布局和语义 处理更加符合研发习惯 02. 标准化一站式研发工作台 剥离业务耦合的标准化研 发工作台 03. 外部版本 提供对外服务的智能 代码开发平台
67. 我们的未来愿景 成为基础产研设施 拥有更优秀的算法、更全面的工程化能力 实现端到端的生成 向设计即交付迈进,打造高效生产链 打造开放生态 建设开放生态,减低接入门槛,赋能更多业务场景
68.
69.

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