由白玉兰开源开放研究院指导,联合掌门教育、声网、vue北京,举办的第二期前端技术分享活动,已于6.19号落幕,以下为大咖讲师们,现场演讲的整理稿,感谢大家的支持:

讲师介绍

分享嘉宾——徐小夕,开源社区活跃贡献成员,H5-Dooring 编辑器作者, 致力于前端工程化和可视化方向的研究,以下为徐小夕同学精彩演讲的部分内容:

传统前端业务开发中,组件角色定位、演化

在传统Web开发过程中,前端项目的技术架构方式大概分为几个步骤,一般我们先确定一个基础的技术选型,比如Vue或者React,随后,我们会选择功能组件库,比如ElementUI或者antDesign,之后再根据业务需要,二次封装一些定制化的业务组件,这基本上就完成了我们对中后台系统的技术结构搭建。

随后,在不断的业务开发过程中,我们再根据实际需要,抽象一些公共区块模块,经过日积月累,通过这些业务区块组件,我们就可以快速的去搭建一个新页面,从而极大的提升团队的开发效率。

但是,在这种场景下,我们仍然不可避免的,需要主动去创建新的页面,这个过程链路依旧很长,针对这种情况,我们就需要考虑有没有更优雅的方式,将这种开发流程状态进行抽象,规则化,从而减少这种页面重复搭建过程。

组件化的一些局限性

  1. 针对部分团队,前端项目非常多的情况,我们依然需要对每个前端工程单独引入业务组件,这个过程本身也会造成效率的低下。

  2. 针对一些复杂系统或者跨部门开发,多个系统之间的页面,也可能会共享业务组件,这就不可避免的会带来沟通和研发成本的提升,甚至在很多时候,我们不得不去在团队时间中做出一些妥协和共识,才能实现业务开发。

  3. 我现在一部分的工作会来自不同的公司、行业,在跨行业、跨公司主体或者第三方社区时,我们也缺乏一种规则来实现不同主体之间的高效的流通。

低/无代码的充要条件

  1. 组件的流通:目前针对组件的流通,我们缺乏跨主体的一些协议,比如物料组件的生产、消费、管理、二次封装、编排等等。

  2. 丰富的物料库:基于业务组件的物料库是低代码平台必备的环节。

  3. 编排:编排的主要能力,是为了方便开发者轻松设计、制作、配置业务组件。

  4. 渲染器:当我们的业务开发者开发完毕一个页面,我们需要提供一种方式让用户去预览或者发布,这就需要一个渲染器将我们生成的代码进行页面渲染、展现。

  5. 出码模块:基于低代码平台开发完一个项目后,我们需要交付源码包或者项目,方便我们的开发者进行生产部署或者二次开发。

低代码的一些局限性

低代码是需要业务、产品、技术等等,多方之间进行一定量的妥协,我们只能解决30%~60%的业务场景,最终的效果仍然需要进行业务验证。

低代码实践-H5-Dooring

H5-dooring是去年下半年,开源的一个低代码平台,主要的目的是方便用户快速搭建一个简单的低代码项目,从2020年下半年至今,Github上已经有4500+stars,同时有50+家企业、1000+用户基于H5-dooring生成页面。

低代码交互的三大实现思路

第一种是钉钉宜搭采用的这种自然流布局方式,它的优点在于这种开发方式更贴合我们传统的开发流程,它的配置灵活度也非常高,并且也更容易去做适配,但相对来说开发门槛略高,对没有技术开发经验的小白开发者不太友好。

第二种是我们H5-Dooring采用的这种智能网格布局方案,它的优势是我们开发者可以去通过拖拽来更轻松的搭建一个组件、页面,但缺点就是无法去对一些更复杂的层级组件进行实现,比如图层或者图片之间的叠加,或者对多个组件之间的灵活度,有着非常高要求的场景。

最后一种就是自由布局方案,自由布局是现在很多lowcode平台普遍采用的方案,比如易企秀、鲁班、字节魔方等等,它的好处显而易见,对有着自定义需求的业务场景,它的支持颗粒度非常友好。

H5-Dooring整体架构简介

H5-Dooring的整个架构主要包括以下几个模块:物料库、布局画布、属性面板、功能面板,以及一些其他的拓展能力。

渲染方面:H5-Dooring的页面渲染是基于schema信息,动态进行组件的渲染,布局方式主要是利用schema中,组件的位置信息来动态计算网格位置,从而渲染出整个页面。另外组件的加载,也是基于schema组件信息按需进行加载,所以针对一个复杂页面的渲染,它的加载速度也不会很慢。

属性面板、表单设计:H5-Dooring的属性配置采用动态配置面板,内部基于一套DSL规则进行实现、解析,支持灵活的属性设置。另外,我们也封装很多常用的表单组件,支持开发者快速进行页面搭建。

动态数据源设计:现在很多低代码平台的数据源设计采用的都是静态设置,比如多个业务组件使用同一个数据源,往往是进行多份数据的复制,之间不再产生关联。H5-Dooring支持动态数据源设计,这意味着我们可以在生产环境下动态去加载数据,从而进行数据更新、替换。

出码模块:目前H5-Dooring支持构建出Dist包和源码包,背后的实现是基于我们的基座工程,它允许我们的用户,在线生成Dist工程和源码工程的Zip包,并提供下载。

可视化搭建的未来展望

第一点是搭建引擎优化,从而能够去支持我们做更多功能的扩展、以及丰富业务组件物料,以来满足更多的应用场景。

第二点是离线化,很多公司受限于各种网络问题,需要一些本地离线化开发,我们后期可能会通过Electron这样的能力去进行实现。

第三点是加强组件之间联系的动作系统,以支持我们业务组件的交互跟协作。

第四点是我们监控系统的智能化搭建,我们可以通过对用户操作、用户数据的反馈系统,分析出一个用户他自己的偏好,然后动态通过一些个性化服务能力。

最后一点是跨端的需求,这种需求也是现在很多前端项目的刚性需求,我们也会去设想一些实现方案。

【前端分享】可视化搭建的一些思考和实践(H5-Dooring原创作者)相关推荐

  1. 费诺编码的gui页面设计_关于页面可视化搭建的一些思考(一)

    前言 说到页面可视化搭建,先引出2个问题,后面有机会再补充: 1.页面可视化搭建是什么? 2.页面可视化搭建到底要解决什么问题? 页面可视化搭建是什么? 顾名思义,可以分两部分来看:页面 + 可视化搭 ...

  2. 低代码 前端页面可视化搭建

    目录 1.低代码/无代码/传统企业应用开发商介绍 2.低代码平台 2.3. 具备外部接口的调用能力 前端页面可视化 3.低代码平台的自动化测试 3.1 关于自动化低代码测试 3.2 低代码测试的机会在 ...

  3. 可视化搭建移动端店铺解决方案

    原文地址:https://juejin.cn/post/6979410699453726727    文章已经过作者许可转载 关注并将「趣谈前端」设为星标 每早08:30按时推送技术干货/优秀开源/技 ...

  4. 如何设计可视化搭建平台的组件商店?

    相关文章: 如何搭积木式的快速开发H5页面? 演示地址: H5-Dooring页面制作平台 关注并将「趣谈前端」设为星标 每早08:30按时推送技术干货/优秀开源/技术思维 之前一直在做 lowcod ...

  5. 「可视化搭建系统」——从设计到架构,探索前端领域技术和业务价值

    阿里巴巴集团前端委员会主席 圆心:未来前端的机会在哪里 对前端未来期许有四点:搭建服务, Serverless,智能化,IDE.仔细想想,一个「可视化搭建系统」的想象空间,正能完美命中这些方面.前端的 ...

  6. 逻辑编排在优酷可视化搭建中的实践(二) - 编排器与业务

    背景与价值 说到逻辑编排大家应该都不陌生了,目前我们集团有多面向后端的逻辑编排技术专项,且没有统一的标准.沉淀通用的方案.也有前端逻辑编排项目,但均面向前端开发提效的逻辑编排,而我们是要打造一个面向非 ...

  7. IoT Studio可视化搭建平台编辑历史功能的思考与探索

    简介: 在前端可视化搭建领域中"重做"和"撤销"这两个功能已经是标配中的标配,毕竟只要有用户行为的地方就可能会有出错,这两个功能无疑就是为用户提供了" ...

  8. 可视化搭建数据大屏系统的前端实现

    随着公司业务的发展,经常会收到一些数据大屏的需求.目前我司有两种实现方案,一是人肉搭建,二是用阿里云 DataV 搭建. 人肉搭建,在本地脚手架开发环境中进行编码,有大量的重复劳动,能力复用性差,占用 ...

  9. 前端可视化搭建的拖拽平台

    前端可视化拖拽平台 简介 技术栈采用dva+hooks+umi+antd-mobile+sortable.js+react-color.基于sortable.js的前端可视化搭建的拖拽平台,ui组件采 ...

最新文章

  1. 【C++】bind参数绑定 P354(通用的函数适配器)
  2. 阿里程序员每天都沮丧想离职!天天去厕所哭!求助心理医生!其他阿里员工:我们也这样!阿里究竟怎么了?...
  3. java和python的web自动化有什么区别-三分钟看懂Python和Java的区别
  4. Shell-实际业务操作02
  5. java编译器代码检查_java 命名代码检查-注解处理器
  6. Vue项目中遇到了大文件分片上传的问题
  7. dedeCMS如何进行关键词过滤替换和屏蔽非法词汇?
  8. Spring学习笔记专题一
  9. CSS3下的渐变文字效果实现
  10. JS查漏补缺(自用版)
  11. 服务器2008r2网络禁止修改,windows-server-2008-r2 – Windows 2008 R2标准服务器 – 如何禁用RC4...
  12. LinuxQQ自动崩溃退出的解决
  13. 硬盘划分主分区、扩展分区、逻辑分区、活动分区有什么不同?
  14. 在list中筛选出符合条件的数据(返回list)
  15. 知我者谓我心忧 不知我者谓我何求
  16. moment获取几小时前_moment.js 常用(几天前、相差几天、自然周、自然月)
  17. 拼多多是PHP还是java,应届程序员收到拼多多offer 表情瞬间爆发
  18. cadence 批量一次性修改title 页码标题等
  19. 用友ORACLE笔记
  20. dpdk 的环境配置搭建

热门文章

  1. 相机标定——张氏标定法
  2. 数据可视化分析教学课件——FineBI实验册节选====校园一卡通消费分析
  3. item-based CF
  4. 在经济危机中萧瑟的光谷软件园
  5. build 与 clean
  6. 一个更现代的终端——Tabby
  7. 不可或缺的十种WebSphere MQ SupportPac
  8. 通证经济——开启数字经济新时代!股票通证:革命性的制度创新
  9. 过年了,给亲朋好友解释「啥是程序员」
  10. C语言常用转换函数实现原理(源代码)