阿里低代碼引擎 LowCodeEngine 正式開源!
低代碼引擎是什么?
低代碼引擎是一款為低代碼平臺開發(fā)者提供的,具備強大擴展能力的低代碼研發(fā)框架。
低代碼引擎由阿里巴巴前端委員會、釘釘宜搭聯(lián)合出品。使用者只需要基于低代碼引擎便可以快速定制符合自己業(yè)務(wù)需求的低代碼平臺。同時,低代碼引擎還在標準低代碼設(shè)計器的基礎(chǔ)上提供了簡單易用的定制擴展能力,能夠滿足業(yè)務(wù)獨特的功能需要。
為什么我們要開發(fā)低代碼引擎?2019 年 7 月,在阿里巴巴前端委員會的技術(shù)資產(chǎn)盤點中,我們發(fā)現(xiàn),集團內(nèi)部已經(jīng)有幾十個具備低代碼能力的平臺在各業(yè)務(wù)中廣泛使用了,而這些平臺底層是基于 3 至 4 套基礎(chǔ)能力或 SDK 來實現(xiàn)的。而這些能力中很多都是可以復(fù)用的,比如下文提到的低代碼引擎的幾大核心能力:入料、編排、渲染、出碼。這些能力的重復(fù)建設(shè)很耗費人力,而每一個 SDK 所投入的人力有限,不足以將其功能打磨精細,導(dǎo)致這些 SDK 大多數(shù)都處于低水平重復(fù)建設(shè)中。在思考解決方案的過程中,我們認識到,不可能將所有的低代碼平臺收斂至一個,因此我們決定將低代碼能力下沉,將低代碼技術(shù)體系拉通共建,制定了統(tǒng)一底層協(xié)議,基于標準打造出低代碼平臺的基礎(chǔ)能力,并在此基礎(chǔ)上提供定制化能力,最終形成了我們低代碼引擎。
低代碼引擎有什么優(yōu)勢?
低代碼引擎提供了低代碼平臺研發(fā)所需的基礎(chǔ)技術(shù)能力,是一款面向前端研發(fā)人員的技術(shù)產(chǎn)品。如果有低代碼產(chǎn)品的研發(fā)訴求,例如:
- 業(yè)務(wù)有獨特的需求,市面上的低代碼平臺都不滿足需求,需要打造一款新的低代碼平臺。
- 需要將低代碼平臺的研發(fā)能力集成到已有系統(tǒng)中。
以上兩種情況,如果使用低代碼引擎,可以在 極短時間 內(nèi)完成開發(fā)低代碼設(shè)計器的開發(fā),大大降低了低代碼平臺的研發(fā)難度和成本。而根據(jù)定制化程度的不同,工作量可以由傳統(tǒng)的幾十人/月壓縮到幾人/月。
為了支撐成百上千個低代碼平臺,我們將低代碼技術(shù)分成了四層,通過分層架構(gòu)來支撐低代碼平臺開發(fā)者進行業(yè)務(wù)上的定制和擴展。
底層協(xié)議標準化
我們定義了《低代碼引擎搭建協(xié)議規(guī)范》和《低代碼引擎物料規(guī)范》作為低代碼引擎的底層協(xié)議。 這兩份協(xié)議定義了 3 方面的內(nèi)容,分別是 術(shù)語、結(jié)構(gòu)和行為 。
- 術(shù)語是我們溝通的基礎(chǔ),概念相通,我們才能高效溝通。我們根據(jù)物料的顆粒度,定義了基礎(chǔ)組件、區(qū)塊、低代碼組件、模板等術(shù)語,另外還包括低代碼生產(chǎn)過程中一些模塊名稱,比如編輯器、畫布、事件綁定、數(shù)據(jù)綁定、渲染、出碼、設(shè)置器之類的術(shù)語。
- 結(jié)構(gòu),包括頁面描述的結(jié)構(gòu),如何定義頁面組件樹、數(shù)據(jù)源、生命周期、頁面狀態(tài)等等。
- 行為,不同的業(yè)務(wù)場景,我們對物料的配置、約束、擴展各不相同,所以我們在物料描述中有各種各樣的鉤子來支持自定制。
正是基于以上幾份協(xié)議,讓上層的互通成為可能,讓 “概念互通,物料互通,生態(tài)互通” 成為了可能。
強大的擴展能力
下圖是低代碼設(shè)計器的骨架結(jié)構(gòu),而設(shè)計器的擴展能力就是圍繞以上的五大區(qū)域來進行的??梢酝ㄟ^插件、物料和設(shè)置器的擴展能力來對所需的區(qū)域進行定制。
低代碼引擎孵化的低代碼平臺可以用以下的公式來理解:
低代碼設(shè)計器 = 低代碼引擎 + 設(shè)計器插件 * n + 物料 * n + 設(shè)置器 * n
下面三種典型的低代碼設(shè)計器,就是在低代碼引擎的基礎(chǔ)上通過不同的插件、物料、設(shè)置器組合而成。
中后臺頁面設(shè)計器
小程序設(shè)計器
流程設(shè)計器
當然還有更多定制化的低代碼平臺設(shè)計器這里由于篇幅就不一一列舉了。其中中后臺頁面設(shè)計器中,通過插件、設(shè)計器和物料定制的區(qū)域如下:
插件定制
設(shè)計器定制的依賴之一就是設(shè)計器插件,我們可以直接使用生態(tài)中流通的插件,也可以根據(jù)我們自己的需求進行插件的開發(fā)。通過編寫不同的插件同引擎核心模塊進行交互,在滿足多樣化的功能的同時,同時也與低代碼引擎解耦。
物料定制
低代碼平臺中的物料也是十分重要的一個部分,我們提供了三個方面的解決方案:
- 提供了一套基礎(chǔ)的低代碼物料,對于新低代碼平臺來說可以開箱即用。
- 提供了將現(xiàn)有的源碼組件轉(zhuǎn)化為低代碼組件的能力,之后即可在低代碼引擎中使用。
- 提供了低代碼組件開發(fā)能力,包括低代碼組件項目初始化、低代碼組件調(diào)試、低代碼組件配置等能力。
設(shè)置器定制
設(shè)置器是指在低代碼設(shè)計器中設(shè)計一個組件時,我們是需要對組件進行可視化配置的,而每一項配置都需要一個設(shè)置器,比如我們的配置是一個文本,我們需要的是文本設(shè)置器,我們需要配置的是數(shù)字,我們需要的就是數(shù)字設(shè)置器。
下圖中的“按鈕內(nèi)容”和“圖標尺寸”的配置就分別是文本設(shè)置器和下拉框設(shè)置器。
當標準的設(shè)置器無法滿足大家的個性化需求時,標準設(shè)置器也提供了定制擴展能力。開發(fā)者可以研發(fā)自定義的設(shè)置器并在組件中使用,使得組件能支持更個性化的配置能力。
配套生態(tài)開箱即用
為了幫助大家更低成本的研發(fā)低代碼平臺,除了低代碼引擎,我們還開源了配套生態(tài)(基礎(chǔ)物料、基礎(chǔ)插件、基礎(chǔ)設(shè)置器、工具鏈),提供更多開箱即用的能力。更多的生態(tài)建設(shè)還在路上,敬請期待。
商業(yè)化產(chǎn)品驗證
釘釘宜搭是阿里巴巴自研的低代碼應(yīng)用開發(fā)平臺,基于阿里云的云基礎(chǔ)設(shè)施和釘釘?shù)钠髽I(yè)數(shù)字化操作系統(tǒng),為每個組織提供低門檻、高效率的數(shù)字化業(yè)務(wù)應(yīng)用生產(chǎn)新模式。在宜搭上生產(chǎn)的每個應(yīng)用天然具備互聯(lián)互通、數(shù)據(jù)驅(qū)動、安全可控的特點。
釘釘宜搭前端底層就是依賴于低代碼引擎的能力進行研發(fā)的。除此之外,低代碼引擎還支撐了阿里集團內(nèi)部 100多個低代碼平臺的建設(shè)。相信之后會有更多的商業(yè)化產(chǎn)品使用低代碼引擎。
為什么要開源?
低代碼平臺的開發(fā)一直需要較長時間的基礎(chǔ)性開發(fā)工作,費時費力,我們希望通過開源低代碼引擎讓更多的垂直行業(yè)低代碼更容易孵化,引入標準+SDK模式建立更多的心智打造。通過社區(qū)中開發(fā)者的使用,可以加速低代碼標準的形成,也可以幫助我們改進低代碼引擎,豐富低代碼平臺的場景,擴展創(chuàng)新能力。
通過擁有低代碼引擎,可以快速的擁有一款定制的低代碼平臺。在阿里內(nèi)部已經(jīng)孵化了100種以上各種各樣的低代碼平臺了。而今天,低代碼引擎也迎來了自己的一個關(guān)鍵節(jié)點,于 2022.3.23 正式對外開源??斓轿覀兊墓倬W(wǎng)進行圍觀吧。
- 官網(wǎng)地址:https://lowcode-engine.cn/
- github:https://github.com/alibaba/lowcode-engine
如果對低代碼引擎建設(shè)歷程和思考有興趣,還可以查看之前的文章: 阿里低代碼引擎和生態(tài)建設(shè)實戰(zhàn)及思考
低代碼引擎在集團內(nèi)部已經(jīng)建設(shè)多年了,研發(fā)人員也經(jīng)歷了很多代,我們期望能把其中的技術(shù)細節(jié)、架構(gòu)設(shè)計和技術(shù)思考呈現(xiàn)給大家。我們提供了 《低代碼引擎技術(shù)白皮書》 ,希望通過對低代碼技術(shù)原理進行一個全面的介紹,讓大家對低代碼引擎有一個更加全面的認識。當然也希望借此能夠吸引到更多志趣相投的小伙伴通過開源社區(qū)進行共建,一起加速低代碼行業(yè)快速發(fā)展。除此之外,我們也希望社區(qū)的小伙伴在了解低代碼引擎之后, 能結(jié)合自己的經(jīng)驗或者低代碼業(yè)務(wù)場景發(fā)現(xiàn)我們的不足,提出改進建議,我們將感激不盡。
《低代碼引擎技術(shù)白皮書》下載地址:https://developer.aliyun.com/ebook/7507