手把手教你D2C,走向前端智能化

简介: 在D2C上的探索~

屏幕快照 2019-07-29 下午5.27.21.png

作者|涂挺鹏(波本)
出品|阿里巴巴新零售淘系技术部

这几年来 AI 来势汹汹,在部分领域应用也逐渐成熟。前端发展至今,我们也有许多成熟的前端解决方案代码,有大量的设计稿,我们是否能够结合智能化的能力将一个 Design 变成一个 Code (设计转代码,简称 D2C)来提效,让前端从一个资源型的角色中解放出来将精力投入到前端其他专业领域?淘宝 D2C 智能团队这两年围绕这个方向也做了许多的探索,最终将 D2C 的能力都承载到了 imgcook 这个产品上。

更多信息

imgcook下载链接,以及使用指南,小编已经为大家准备好啦!
下载imgcook:https://imgcook.taobao.org/
imgcook使用指南:https://imgcook.taobao.org/docs

imgcook 是什么

imgcook 是专注以各种图像(Sketch/PSD/静态图片)为原材料烹饪的匠心大厨,通过智能化手段将各种图像一键生成可维护的 UI 视图代码,期望此 imgcook (图像大厨) 未来能够成为一位 P5 级别的重构工程师,能切实提高开发的开发效率,并助力开发、设计师、测试的高效协作,我们期望做到:

  • 100% 还原【设计师再也不用还原走查了】
  • 100% 兼容【测试再也不用适配样式了】
  • 一键上线【开发再也不用切图写样式了】

愿景:能够高度还原各种图像,释放 UI 开发生产力,让你关注更具挑战性的事情!

1.gif

为什么要做 imgcook ?

对于 UI 还原而言,早在很多年前,类似的从设计稿中还原生成静态 UI 场景的解决方案也都涌现过,比如一些设计稿标注工具(如Marketch),又或者说目前的一些可视化建站平台也都能够在搭建完后直接产出线上页面,那么 imgcook 的优势体现在哪?

我们回到 UI 还原主题上,当我们说图像生成代码的时候,我们关心的不仅仅是生成 UI 的还原度,也关心生成的代码是否合理、可维护,如果生成的代码属于不可读不可维护的快餐代码,开发使用上再对其进行二次开发就会显得极为艰难,而往往后者的难度相比前者更甚,如果需要在生产环境中使用,这个问题就无法避免。

对此,imgcook 的定位就在于解决 UI 还原以及生成可维护代码的问题。

▐ 设计稿无约束+高还原

对于 UI 还原,目前比较常见的场景是从设计工具(比如Sketch、PS)入手。但比较不如意的是,设计师交付的设计稿里所带的结构化信息往往是杂乱无章的,如果需要精确得解析一个设计稿里某个模块的结构化数据,往往又需要跟设计师进行合作,规范设计稿中的设计以及制定一些约束来进行使用,这会增加一定程度上的使用成本。

imgcook 为了解决这个问题,目前在对设计稿的解析上做了一些智能化的处理,去除了对设计师图层设计规范这块的依赖(当然对于良好的设计规范会让还原效果更甚!),只保留了一项开发人员可能使用到的规范来做 UI 还原。

▐ 生成可维护代码

对于可维护性代码的问题,imgcook 会对还原后的 UI 在代码层面上生成目前使用比较广泛的 Flexbox 布局以及相对定位布局,在一些自定义的命名上(比如样式命名),imgcook 也会根据开发者的习惯生成更加人性化的命名。

1.png

如何使用 imgcook ?

imgcook 目前对外的体验版里,开放了针对 Sketch 设计稿和 PSD 设计稿的还原插件,以 Sketch 为例,整体的导出流程如下:

1. 插件导出模块
在使用 Sketch 插件进行还原的时候,可选中一个模块外层的容器节点(画板、Group或者Symbol)来进行导出。

1.png

2. 粘贴还原
模块导出完毕后,可前往 imgcook 平台进行粘贴还原。

2.png

3. 保存查阅代码
检查模块还原 UI 以及左侧的布局结构无误后,可进行保存->查阅代码,目前对外的体验版中 imgcook 提供了几种可选择的 DSL 进行代码生成,对于每个 DSL,可在右侧的 playground 里查看具体运行的效果。

1.png

什么场景下使用 imgcook ?

imgcook 的诞生源于业务,也最终服务于业务。

  • 场景使用层面上,imgcook 倾向于以页面中的模块级别维度来进行使用;对于模块本身,imgcook 也会倾向于一些轻交互逻辑的模块来进行使用。
  • 技术层面上,imgcook 对于支持 Flexbox 布局类型的 DSL 都会有一个比较好的支持。

1.png

面向未来

面向未来,imgcook 还在深耕更多的 UI 识别能力,诸如 Input/Table/Select 等前端基础控件识别、业界流行的 Antd/Fusion 等前端组件库识别,甚至可以为垂直业务定制独特的业务组件的识别能力,我们希望 imgcook 能真正给前端带来更多的提效能力。

建议反馈

imgcook 目前还处于体验版,会存在一些不确定性的还原 badcase 以及代码生成不合理的 badcase,请向我们反馈,我们会第一时间进行问题收集、跟进处理。

反馈地址:Issue
钉钉交流群:

1.png

One More Thing

淘系技术部频道与 D2C 智能团队,主要负责阿里巴巴前端委员会智能化方向核心技术设计落地,包含 imgcook 平台的建设及开放和开源。参与部分淘宝天猫核心业务开发,在这里我们用诗人的浪漫和科学家的严谨来探索全新的前端智能化开发,欢迎热爱技术、对业务有好奇心、有合作精神的同学一起工作、成长。

简历可投邮箱:tingpeng.ttp@alibaba-inc.com

相关文章
|
2月前
|
人工智能 JSON 前端开发
有关D2C工具的思考和分享, 提升前端研发效率
有关D2C工具的思考和分享, 提升前端研发效率
52 1
|
机器学习/深度学习 人工智能 自然语言处理
从前端智能化看“低代码/无代码”
什么是低代码/无代码开发?业界对于低代码/无代码开发是否存在其他不同的理解?低代码开发和无代码开发之间的区别是什么?
从前端智能化看“低代码/无代码”
|
算法 前端开发 搜索推荐
前端智能化在淘宝的2022实践总结
过去十年是智能化蓬勃发展的十年,但未来十年会是智能化渗入各领域彻底改变我们生活和工作的十年。阿里前端智能化方向小组历经 4 年的实践和演变,在前端融入业务技术团队和终端融合的背景之下,前端智能化小组在2022年更多以优化拓展基础业务工具、落地服务业务为主。
210 0
前端智能化在淘宝的2022实践总结
|
前端开发
《《前端智能化实践》——逻辑代码生成》电子版地址
《前端智能化实践》——逻辑代码生成--甄子
73 0
《《前端智能化实践》——逻辑代码生成》电子版地址
|
机器学习/深度学习 XML 人工智能
|
机器学习/深度学习 存储 算法
前端智能化实践——可微编程
研究者表示,由于广泛的科学计算和机器学习领域在底层结构上都需要线性代数的支持,因此有可能以可微编程的形式,创造一种新的编程思想。下面,我们就一起进入这个全新的领域。
284 0
前端智能化实践——可微编程
|
机器学习/深度学习 智能设计 人工智能
前端智能化发展现状与未来展望
前端智能化到底是什么?把这件事讲清楚。
前端智能化发展现状与未来展望
|
机器学习/深度学习 人工智能 自然语言处理
前端智能化看“低代码/无代码”
前端如何跟上AI发展的浪潮?
前端智能化看“低代码/无代码”
|
机器学习/深度学习 人工智能 城市大脑
前端智能化在阿里云大数据研发平台中的实践
前端智能化有哪些实际应用场景?
前端智能化在阿里云大数据研发平台中的实践
|
机器学习/深度学习 编解码 人工智能
前端智能化实践— P2C 从需求文档生成代码 | D2 分享视频+文章
从需求文档生成代码? 看看狼叔和卓风怎么说。
前端智能化实践— P2C 从需求文档生成代码 | D2 分享视频+文章