低代码引擎技术白皮书.pdf
《低代码引擎技术白皮书.pdf》由会员分享,可在线阅读,更多相关《低代码引擎技术白皮书.pdf(217页珍藏版)》请在咨信网上搜索。
1、 目录 目录 5 前言 7 第一章 低代码基础 10 1.1 低代码介绍 10 1.2 低代码产品发展及现状 14 第二章 低代码引擎介绍 17 第三章 低代码引擎之应用篇 29 3.1 低代码应用开发 29 3.1.1 初始化低代码项目 30 3.1.2 定制设计器 37 3.1.3 定制插件 43 3.1.4 定制设置器 50 3.1.5 定制物料 59 3.1.6 定制出码 71 3.2 应用实例之宜搭 81 3.2.1 应用介绍 81 3.2.2 应用方案 86 3.2.3 应用实现 88 第四章 低代码引擎之基础协议 92 4.1 低代码基础协议介绍 92 4.2 低代码引擎搭建协议
2、规范 97 4.3 低代码引擎物料规范 107 第五章 低代码引擎之原理篇 115 5.1 低代码引擎技术概览 115 5.2 低代码引擎技术原理 116 5.2.1 低代码入料 116 5.2.2 低代码编排 121 5.2.3 低代码渲染 139 5.2.4 低代码出码 173 5.3 低代码引擎生态设计 180 5.3.1 低代码引擎生态概览 180 5.3.2 低代码引擎设置器建设 182 5.3.3 低代码引擎插件建设 188 5.3.4 低代码引擎物料建设 191 第六章 低代码引擎展望 208 附录 211 名词解释 211 快速指引 214 物料列表 215 设置器列表 216
3、 插件列表 220 前言 低代码技术的技术发展“低代码”这个概念是在 2014 年由 Forrester Research 提出的,但早在“低代码”这个概念正式提出之前,它的产品或者说低代码平台其实就已经在市场上出现。最早我有印象的低代码平台是 Dreamweave,它让我在毫无前端基础的情况下完成了我的第一个网页。从 2014 年以来,“低代码”平台作为前端开发最有力的提效工具,在前端开发中的热度居高不下。根据 2021 年的数据统计,阿里巴巴集团内部低代码平台的数量已达 100 种以上,目前还在持续增长中。除正常的技术发展之外,企业对低代码不断增强的需求也大大加速了低代码的发展。在疫情和后
4、疫情时代,国内“云”市场竞争加剧,企业数字化转型浪潮等带来了大量企业级系统建设的需求,而技术人员出现了大量的缺口,在供需关系无法平衡的情况下,以低代码为主导的研发模式就成为了我们建设的核心。低代码发展到现在一直难以出现一个能满足所有需求的低代码平台,每条业务线几乎都有属于自己的低代码平台,这主要是因为每条业务线的使用对象、使用场景的差异较大难以统一。在充分认识到这一现实后,我们并没有打算开发一款满足所有需求的低代码平台,而是打算另辟蹊径,研发一种能够让业务线能够快速建设低代码平台、减少重复低水平建设的低代码引擎。低代码引擎是一款为低代码平台开发者提供的,具备强大定制扩展能力的低代码设计器研发框
5、架。它的核心是设计器,通过扩展、周边生态等可以产出各式各样的设计器。它不是一套可以适合所有人的低代码平台,而是帮助低代码平台的开发者,快速生产低代码平台的工具。在阿里巴巴集团内部,低代码引擎已经发展了很多年了,在它基础上孵化出来的低代码平台也越来越多,阿里巴巴集团内部有数十个内部垂直业务场景下的低代码平台,这些平台通过低代码搭建的开发模式生产的页面总量已经超过百万张。另外阿里巴巴集团对外的商业化产品钉钉宜搭的底层也是低代码引擎。经过这些年的建设,低代码引擎已经发展到了一定的成熟度,也走到了“大教堂”和“集市”的分叉路口,我们最终也选择了面向未来的开源之路。为什么要写这本书 希望通过对低代码技术
6、原理进行一个全面的介绍,让大家对低代码引擎有一个更加全面的认识。通 过开源社区方式共建,一起加速低代码行业快速发展。除此之外,我们也希望社区的小伙伴在了解低代码引擎之后,能结合自己的经验或者低代码业务场景发现我们的不足,提出改进建议,我们将感激不尽。图书目标作者 我们期望本书的读者是拥有一定的前端基础的技术人员。你可能对低代码引擎如何实现比较好奇,你可能期望参与到低代码引擎的建设中来,你可能正在研发一款低代码平台,而底层使用的就是低代码引擎,那么这本书是十分适合你的。本书主要内容 本书主要有六章,第一章会跟大家介绍一下低代码是什么。第二章介绍低代码引擎是什么,并且带着大家去使用低代码引擎。第三
7、章介绍了低代码引擎的使用。接下来第四章会介绍低代码引擎的底层协议,让大家了解低代码底层协议是什么,有什么作用。第五章就会带大家深入到引擎的原理部分,介绍低代码引擎四大核心模块(编排、渲染、出码、入料)的原理和低代码引擎周边生态建设的原理。最后第六章会对低代码引擎未来进行一下畅想。联系我们 本书是参与低代码引擎的技术小伙伴们共同编写的,我们期望能表达清楚技术原理,但是由于我们参与到低代码行业中或者对引擎的了解程度比较高,所以对于某一些理念我们可能先入为主地认为大家已经有了一定的了解而没有作出详细的解释。在此对大家说一声抱歉,期望大家能理解并且反馈到我们的邮箱 f2e_ 中。同时我们对本书行文和措
8、辞不恰当的地方表示抱歉,大家可以一并反馈到上述邮箱中,我们会持续进行修订。致谢 这里十分感谢曾经参与贡献过低代码引擎的小伙伴们,排名不分先后。感谢骁勇、戊子、康为、前道、林熠、力皓、无曰、星菏、月飞、多月、楼小、九神、天晟、褚天、暁仙、弱冠、邵磊、下羊、大果、悟忌、彼洋、献之、潕量、金禅、春希、米尔、奕笙、夏柘、缘一、萧叹、守钰、度城、屹凡、启剑、骏隆、莫夭、荣彬、牧云、牧毅、国凯、承虎、墨尘、胖丁、絮黎、化羿、璿玑。本书是由目前正在阿里集团的几位小伙伴共同编写完成,感谢邵磊、戊子、林熠、力皓、金禅、度城、荣彬、牧毅、承虎、胖丁、絮黎、游鹿、彼洋。本书还引用了一些其他作者的内容,在这里也十分感
9、谢这些小伙伴的沉淀:紫益、前道、无曰、星菏。如果你曾经参与过低代码引擎贡献但在这里没有找到自己的名字,在这里先说一声抱歉,并诚恳的希望你能联系我们的官方邮箱对名单进行更正。因成书时间仓促,如发现本书有任何纰漏或者对本文有任何建议,也欢迎你联系我们的官方邮箱:f2e_,谢谢!第一章 低代码基础 1.1 低代码介绍 可视化页面搭建,通过简单的拖拽即可完成应用页面开发,对前端技能没有要求或不需要特别专业的了解;可视化模型设计,与业务相关的数据存储变得更容易理解,甚至大多数简单场景可以做到表单即模型,模型字段的类型更加业务化;可视化流程设计,不管是业务流程还是审批流程,都可以通过简单的点线连接来进行配
10、置;可视化报表及数据分析,BI 数据分析能力成为标配,随时随地通过拖拽选择来定义自定义分析报表;可视化服务与数据开放、集成,具备与其他系统互联互通的配置;权限、角色设置标准化和业务化,通过策略规则配置来将数据、操作的权限进行精细化管理;无需关心服务器、计算设施设备、网络、数据库等复杂技术概念和底层运维,具备安全、性能的统一解决方案,开发者只需要专注于业务本身;基于具备上述这些能力的低代码平台,你会发现即使你是个技术小白,但只要你了解业务,就能不受束缚的完成大多数业务应用的搭建。另外,低代码本身也不仅仅是为技术小白准备的。在实践过程中,低代码通过组件化、模块化的思路让业务的抽象更加容易,并在扩展
11、及配置化上带来了更加新鲜的模式探索,使得技术人员的架构设计成本和实施成本降低了很多。通过低代码的方式,我们能够根据不同的业务,将各种模块进行组合,从一个个的能力单体,到组成部门级应用,再到核心应用,甚至形成完整的解决方案 从软件开发演进过程中我们可以看到,低代码正是处于代码语言与业务语言中间的阶段,既能够将门槛降低,同时也能通过代码语言扩展具备更多的扩展能力。1.1 低代码介绍 1.1 低代码介绍 低代码的核心能力中,可视化页面搭建是重中之重,通过组件的拖拉拽,按照用户对业务的需求完成页面布局、模块组装以及各种样式调整。为了实现让非前端能够完成任意页面的搭建,前端开发者们在组件体系建设、可视化
12、搭建设计器、弱工程化等方面开启了探索:组件体系:将页面中所使用的的元素进行原子化封装,通过配置选项让组件具备适应性调整的能力;可视化搭建设计器:布局可视化、配置可视化、样式可视化;弱工程化:将打包、发布等等各种环节进行弱化,用户只需要所见即所得的关注页面产出;不止前端领域,在整个低代码领域中,后端及 DevOps 都有其独特的发展路线,由于不是本书的重点,这里不做介绍。1.2 低代码产品发展及现状 1.2 低代码产品发展及现状 Gartner 在低代码开发平台魔力象限中,给出了部分海外头部产品的分级对比:1.2 低代码产品发展及现状 第二章 低代码引擎介绍 第二章 低代码引擎介绍 作者|林熠
13、前言 目前,市面上已经有了很多低代码产品,包含最早的 VB、FrontPage、Dreamweaver、Flex,以及现在的云端的 Webflow、9466 网页助手等,但是仍然没有一个产品能真正做到把可视化搭建当作主要的、最终的输出方式,就算有,最终也会落下一个“不会用、不够用”的名声,或者只能作为一个辅助、入门或教学级产品,难登大雅之堂。因此,我们换个思路,如果为每个场景开发一个场景化的搭建平台,这样搭建就会变得更好用,更易用。而低代码引擎正是为了让开发搭建平台变得更容易更快速。低代码引擎 定义 以下使我们对低代码引擎的定义:低代码引擎是一款为低代码平台开发者提供的,具备强大定制扩展能力的
14、低代码设计器研发框架。接下来我们针对定义进行详细的说明和介绍。低代码设计器 现如今各式各样的低代码平台都会提供一个共同的能力:搭建和配置页面、模块的页面。我们称具备该能力的平台称为设计器。例如,下图是中后台低代码平台的设计器。第二章 低代码引擎介绍 3.1.1 初始化低代码项目 低代码设计器研发框架 低代码引擎的核心是设计器,通过扩展插件、周边生态等可以产出各式各样的设计器。它不是一套可以适合所有人的低代码平台,而是帮助低代码平台的开发者快速制作自定义低代码平台的工具。接下来我们就看一下我们具体能用它来做什么吧。面向用户 低代码引擎是前端 SDK,是一款面向前端研发人员的技术产品。如果有低代码
15、产品的研发诉求,例如:1)业务有独特的需求,市面上的低代码平台都不满足需求,需要打造一款新的低代码平台。2)需要将低代码平台的研发能力集成到已有系统中。以上两种情况,如果使用低代码引擎,可以在极短时间内完成低代码设计器的开发工作,大大降低低代码设计器的研发难度和成本。根据定制化程度有所不同工作量可以由传统的几十人月压缩到几人月,节省达十倍之多。第二章 低代码引擎介绍 3.1.1 初始化低代码项目 低代码平台设计器可以用以下的公式来理解:低代码设计器=低代码引擎+设计器插件*n+物料*n+设置器*n 为了直观起见,下面给出低代码引擎产出的几种典型的低代码设计器。1)中后台页面设计器 2)小程序设
16、计器 第二章 低代码引擎介绍 3.1.1 初始化低代码项目 设计器定制的依赖之一就是设计器插件,我们可以直接使用生态中流通的插件,也可以根据我们自己的需求进行插件的开发。通过编写不同的插件和引擎核心模块进行交互,不仅满足多样化的功能的同时,同时也与低代码引擎解耦。通过开发插件,我们可以做的事情很多:1)设计器区域新增一个定制面板;2)操作辅助区域新增一个辅助设置;3)schema 保存之前的处理;.物料定制 低代码引擎生态已经提供了几套官方物料,还有强大的物料定制功能,可以将现有的组件之间转化为低代码组件,并在低代码引擎中使用。也可以直接开发标准的低代码组件,通过官方工具提供了组件开发的初始化
17、、调试、低代码配置工具等。设置器定制 设置器是指在低代码设计器中设计一个组件时,我们是需要对组件进行可视化配置的,而每一项配置都需要一个设置器,比如我们的配置是一个文本,我们需要的是文本设置器,我们需要配置的是数字,我们需要的就是数字设置器。下图中的标题和按钮类型配置就分别是文本设置器和下拉框设置器。第二章 低代码引擎介绍 3.1.1 初始化低代码项目 建设背景 为什么会想到要做这样一个东西呢,要回归到低代码引擎建设的背景上来:一代引擎 万事都无法一下子完成的,最开始的目标是比较简单的。在项目的初期,我们有三类搭建产品需要打造,即中后台场景、表单场景、数据可视化场景。三种场景,三个平台,三个产
18、品,这是很自然的,但三个产品存在共性需求,即可视化搭建。底层的架构以及生态可不能乘以三,而应当以中台的思维来造中台的产品,这就是我们第一代引擎的价值。最终在 2016-2017 年我们的三个搭建产品完成了,我们的第一代引擎也小有气候。而集团内相似的搭建引擎也是在类似的背景下产生了。低代码技术,作为一种能够有效的帮助业务提效降本、角色赋能的基础能力,多年来在阿里巴巴集团内部各业务线均有不同程度的建设和应用。困境 2019 年年中,在阿里巴巴前端委员会的技术资产盘点中我们发现,已经有基于几十个具备低代码能力的平台在各业务中广泛使用了,而这些平台底层是基于 3、4 套基础能力或 SDK 来实现的。而
19、这些能力中很多都是可以复用的,比如我们之后提到的低代码引擎的几大核心能力:入料、编排、渲染、出码。这些能力的重复建设是很耗费人力的,而每一个 SDK 所投入的人力由于规模的原因,也不足以庞大到打磨精细,导致这些 SDK 大多数都处于低水平建设中。我们有两种方式来解决目前的困境。解决方案 将所有的低代码平台收敛 将所有的低代码平台收敛,只提供一个打磨精细的低代码平台。我们进行了一系列统计分析其可行第二章 低代码引擎介绍 3.1.1 初始化低代码项目 最终经过来自十几个团队的几十名同学的先后参与共同建设,低代码引擎从底层协议的制定,到 1.0 版本的内部发布,再到上百个平台的落地使用和打磨,历时
20、3 年,持续迭代 200 多个版本,终于在 2021 年底相对成熟。这样一来,避免低水平重复建设,提升各业务场景中低代码能力的建设和使用效率,提升低代码体系中物料、能力、领域方案、产物等的可流通性。建设理念 从建设背景出发,共建小组明确了低代码引擎的建设理念:协议先行,最小内核,最强生态。协议先行 一份共同遵守的协议是整个体系的基石,决定了整个体系是否能够足够包容,兼容足够多的上层场景,同时也是整体技术体系能否足够稳定发展的基石,后续所有的引擎实现都是服务于协议的。在实践过程中,协议从成立专家组开始讨论,到 alpha 版本发布,到在阿里巴巴集团内部公开征集意见,到最终的 1.0 正式版本发布
21、,也是持续了半年之久,最终产出两份协议:低代码引擎搭建协议规范和低代码引擎物料规范。后文也会有专门的章节对协议进行展开讲解。最小内核&最强生态 如果说协议是基石,那么引擎便是数字世界中协议的实现载体。同时也是处于整个生态中内核的位置上,向下对接协议,负责协议的实现,向上支撑生态开放体系,提供各种生态扩展能力。整个引擎基建的目标其实是为了能够支撑阿里巴巴体系内众多低代码业务场景,以及不断新增的低代码平台/场景建设诉求,从建设之初我们就确定了求同存异的目标。对于整个生态开放体系来说:共性的部分我们抽象为内核,内核只做对协议进行实现的部分以及支撑生态体系的基座能力,做精做深做透;差异的部分由用户以开
22、发插件、物料、设置器等扩展的形式来承载。对于开放体系后文章也会有专门的章节进行详细讲解。第二章 低代码引擎介绍 第三章 低代码引擎之应用篇 第三章 低代码引擎之应用篇 3.1 低代码应用开发 上一章大家已经了解了低代码引擎,接下来我们会使用一个简短的章节对低代码引擎的使用做一个简单的介绍,让大家对于低代码引擎有一个更加直观的认识。这里不会对低代码引擎的使用做很全面的介绍,如果希望了解引擎更全面的使用,可以到低代码引擎官网中查看文档。另外这里我们假定读者是有前端研发能力的,所以后续的前端基础部分不会进行说明。3.1 低代码应用开发 3.1.1 初始化低代码项目 DEMO 介绍 目录介绍|-low
23、code-editor-demo|-package.json|-public|-assets.json|-favicon.png|-index.html|-mock-pages.json|-preview.html|-schema.json|-src|-index.ts /设计器入口文件|-preview.tsx /预览入口|-universal|-asset.json|-components.ts|-config.ts|-custom-setter.tsx /自定义的 Setter|-plugin.ts /DEMO 设计器插件注册 index.html 中引入了 UMD 包资源,我们可以直接
24、通过 window 上的变量进行引用,如 window.AliLowCodeEngine.init,便可以直接初始化低代码引擎。import init from alilc/lowcode-engine;init(document.getElementById(lce-container),/designMode:live,/locale:zh-CN,enableCondition:true,);3.1 低代码应用开发 3.1.1 初始化低代码项目 是通过以下代码来支持的:import React from react;import Message from alifd/next;import
25、 ILowCodePluginContext,plugins,hotkey,skeleton from alilc/lowcode-engine;const saveSchema=()=window.localStorage.setItem(projectSchema,JSON.stringify(project.exportSchema();Message.success(成功保存到本地);plugins.register(ctx:ILowCodePluginContext)=return name:saveSample,async init()skeleton.add(3.1 低代码应用开
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 代码 引擎 技术 白皮书
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【Stan****Shan】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【Stan****Shan】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。