低代碼引擎半歲啦,來(lái)跟大家嘮嘮嗑…(低代碼開(kāi)發(fā)平臺(tái)介紹)
作者:劉菊萍 (絮黎)
之前低代碼引擎一直是在阿里集團(tuán)內(nèi)部進(jìn)行孵化的,對(duì)外開(kāi)源算是一次新生。從2022年3月23日開(kāi)源至今,我們的低代碼引擎已經(jīng)半歲了,希望借這個(gè)機(jī)會(huì)來(lái)跟大家嘮嘮嗑。
- 開(kāi)源地址:https://github.com/alibaba/lowcode-engine
- 官網(wǎng): 「鏈接」
不知道大家是不是已經(jīng)把低代碼引擎用到生產(chǎn)環(huán)境了?當(dāng)然估計(jì)大家也遇到了很多問(wèn)題,畢竟 issues 越來(lái)越多…今天呢,我們倒也不是來(lái)幫大家解決 issues 的,主要是想跟大家總結(jié)一下上半年的工作,當(dāng)然也想?yún)R報(bào)一下我們后續(xù)的規(guī)劃,讓大家知道低代碼引擎后續(xù)發(fā)展的藍(lán)圖,讓大家好判斷自己的低代碼平臺(tái)和我們的低代碼引擎規(guī)劃上是否能匹配。
低代碼引擎過(guò)去半年的動(dòng)態(tài)
低代碼引擎在過(guò)去的半年還是發(fā)生了很多事情的。
低代碼引擎出生了
低代碼引擎在 3.23 號(hào)出生了,隨著一起出生的還有我們的《低代碼引擎技術(shù)白皮書(shū)》。在半年后的今天有 8000 多哥哥姐姐們喜歡它,真的讓我們很開(kāi)心。
低代碼引擎的兄弟姐妹
當(dāng)然低代碼引擎出生后,我們的 Fusion 低代碼物料、精品插件等兄弟姐妹也都一起正式跟大家見(jiàn)面了。
并且在大家的熱情下,我們?cè)陂_(kāi)源之后也對(duì)外開(kāi)放了 Antd 的低代碼物料。
之后我們也還會(huì)繼續(xù)加油,讓更多兄弟姐妹也出來(lái)見(jiàn)見(jiàn)市面,比如我們的自然布局相關(guān)物料 pro-layout。
低代碼引擎的小伙伴們
低代碼引擎也認(rèn)識(shí)了很多新的小伙伴,這些小伙伴都很熱心。有幫忙回答 issue 的小伙伴;有幫忙提 PR 的小伙伴;有在社區(qū)貢獻(xiàn)生態(tài)的小伙伴;更有長(zhǎng)期參與維護(hù)的小伙伴。感覺(jué)我們的隊(duì)伍越來(lái)越強(qiáng)大了??纯催@些小伙伴們都干了什么:
- twinkle77、haloworld007、Immanding 實(shí)現(xiàn)了一套 formily 和 Ant Design Pro 的低代碼物料
- Dogtiti 基于 next 實(shí)現(xiàn)了高級(jí)組件低代碼物料
- keuby 實(shí)現(xiàn)了基于低代碼引擎的 Vue 渲染器和適配器
- twinkle77 小伙伴長(zhǎng)期參與到數(shù)據(jù)源插件的維護(hù)中,給了我們很大的幫助
- …
當(dāng)然還有很多小伙伴給我們貢獻(xiàn)代碼,這里就不一一感謝了。
低代碼引擎協(xié)議對(duì)外營(yíng)業(yè)了
低代碼引擎的三大協(xié)議是引擎的基礎(chǔ),我們也已經(jīng)把它放到開(kāi)源倉(cāng)庫(kù)中了,后面大家也可以對(duì)協(xié)議提出修改意見(jiàn)并提 PR 了。
低代碼引擎系列文章和分享
我們也在持續(xù)發(fā)布一些文章,并在一些大會(huì)上進(jìn)行分享,期望能把我們的思考/實(shí)踐分享給大家。
- 磁貼布局在釘釘宜搭報(bào)表設(shè)計(jì)引擎中的實(shí)現(xiàn)
- 關(guān)于 LowCode&ProCode 混合研發(fā)的思考
- 低代碼渲染那些事
- 基于 LowCodeEngine 的調(diào)試能力建設(shè)與實(shí)踐
- 低代碼技術(shù)在研發(fā)團(tuán)隊(duì)的應(yīng)用模式探討
這半年的總結(jié)大概就是這些了,接下來(lái)我們還會(huì)再接再厲的~
未來(lái)的低代碼引擎是什么樣呢
低代碼引擎現(xiàn)在剛半歲,還在茁壯成長(zhǎng)中,但是正如一個(gè)小孩想成長(zhǎng)成一個(gè)大人,我們低代碼引擎也在幻想自己長(zhǎng)大之后是什么樣的。低代碼引擎期望成長(zhǎng)起來(lái)的自己是什么樣的呢:
- 所有流行的物料庫(kù)都有對(duì)應(yīng)的開(kāi)箱即用的低代碼物料,比如包括 Ant Design、Ant Design Mobile、Element 等等。
- 支持 Vue、React、Angular 等等流行前端框架的出碼和渲染,甚至還有 Rax、Taro、React-Native 等等。
- 可以提供多種常見(jiàn)的解決方案,比如邏輯編排、圖編排、絕對(duì)布局畫(huà)布、小程序解決方案、跨端解決方案等等。
- 可以提供不同規(guī)模的低代碼解決方案,包括組件級(jí)別、區(qū)塊級(jí)別、頁(yè)面級(jí)別和應(yīng)用級(jí)別。包括他們的出碼、渲染和編排等等。
- 對(duì)于存量頁(yè)面和低代碼頁(yè)面之間的問(wèn)題,還需要配合微前端集成、也能提供各種混合研發(fā)方式等等。
- …
為了成長(zhǎng)成這樣的低代碼引擎,低代碼后續(xù)的技能點(diǎn)主要點(diǎn)在這幾個(gè)方向:簡(jiǎn)單、可靠、強(qiáng)大、克制。
簡(jiǎn)單
低代碼引擎自己也知道現(xiàn)在它的學(xué)習(xí)門(mén)檻還是比較高的,對(duì)于初級(jí)前端和非前端來(lái)說(shuō),上手的過(guò)程更加困難。所以為了讓更多的小伙伴能使用上低代碼引擎,我們期望未來(lái)的低代碼引擎使用起來(lái)是簡(jiǎn)單的,它會(huì)提供越來(lái)越簡(jiǎn)單的使用方式,最終對(duì)于開(kāi)發(fā)者來(lái)說(shuō),大幅度減少低代碼引擎的難度,讓低代碼平臺(tái)的定制更加簡(jiǎn)單。
為了實(shí)現(xiàn)這個(gè)目標(biāo),一方面我們會(huì)把我們的文檔持續(xù)的進(jìn)行完善并且社區(qū)化維護(hù)。另外一方面我們會(huì)進(jìn)一步借助社區(qū)小伙伴的力量,通過(guò)在線化的插件、物料等市場(chǎng),將社區(qū)的能力集成到一起。也會(huì)提供設(shè)計(jì)器的可視化配置方式,未來(lái)也可以通過(guò)低代碼的方式開(kāi)發(fā)低代碼平臺(tái)了。
可靠
讓用戶可以無(wú)憂使用最新版本,這應(yīng)該是開(kāi)源框架最基本的能力了,低代碼引擎也需要制定新的策略來(lái)滿足這一原則。
- 低代碼引擎的新能力都會(huì)基于標(biāo)準(zhǔn)協(xié)議,一切改動(dòng)協(xié)議先行
- 低代碼引擎會(huì)保證架構(gòu)的穩(wěn)定性,也會(huì)準(zhǔn)守 Semver 的標(biāo)準(zhǔn),讓社區(qū)小伙伴放心升級(jí)
- 完整的灰度策略,在發(fā)布正式版本之前會(huì)在阿里集團(tuán)內(nèi)部使用量最多的低代碼產(chǎn)品上穩(wěn)定運(yùn)行
為此我們后續(xù)的運(yùn)營(yíng)狀態(tài)也會(huì)微微調(diào)整
- 社區(qū)群(微信群和釘釘群)還是維持現(xiàn)狀,簡(jiǎn)單的問(wèn)題小助手會(huì)回答,也有熱心的小伙伴回答,真的很感激這些熱心的小伙伴,當(dāng)然比較復(fù)雜的還是建議 issue 提問(wèn)。除此之外我們會(huì)再維護(hù)一個(gè)貢獻(xiàn)者群,貢獻(xiàn)過(guò)的小伙伴都可以加入我們。
- 穩(wěn)定的發(fā)版節(jié)奏,每 2-3 周會(huì)穩(wěn)定發(fā)布新版本,迭代節(jié)奏穩(wěn)定,每年 2 個(gè)比較大的 release。
- 每年 1-2 次線上 meetup。
強(qiáng)大
低代碼引擎未來(lái)會(huì)提供更多強(qiáng)大的能力來(lái)支持各種低代碼平臺(tái)的場(chǎng)景,包括但不限于:
- 支持組件級(jí)別、區(qū)塊級(jí)別、頁(yè)面級(jí)別和應(yīng)用級(jí)別的設(shè)計(jì)能力,包括他們的出碼、渲染和編排
- 支持多種前端框架的出碼和渲染,例如 Vue、React、Angular、Rax、Taro、React-Native…
- 支持越來(lái)越多的解決方案,比如邏輯編排、圖編排、絕對(duì)布局畫(huà)布、小程序解決方案、跨端解決方案等等。
- 支持不同低代碼平臺(tái)的定制能力,包括主題定制、畫(huà)布定制等等
最近半年低代碼引擎在能力上的規(guī)劃在文章的后半部分,這里不做過(guò)多的介紹。
克制
當(dāng)然,低代碼引擎也需要有一些限制,不能什么都做也不能什么都不做。我們需要給低代碼引擎和官方生態(tài)上制定一個(gè)設(shè)計(jì)原則。指出來(lái)我們未來(lái)會(huì)做什么以及不會(huì)做什么。
低代碼引擎設(shè)計(jì)原則:
- 低代碼引擎是對(duì)協(xié)議的實(shí)現(xiàn)和擴(kuò)展的支持,且只做協(xié)議的實(shí)現(xiàn)和擴(kuò)展支持。
- 低代碼引擎的擴(kuò)展能力開(kāi)放上是克制的。在交互形態(tài)上 Skeleton 由官方管控,不提供定制能力,包括各區(qū)域基本的交互方式、以及彈窗規(guī)范等:低代碼引擎設(shè)計(jì)器需要作為頁(yè)面最外層來(lái)使用,不作為頁(yè)面的一部分嵌入式使用。
- 為了給生態(tài)提供更好的通用性和穩(wěn)定性保障機(jī)制,低代碼引擎的相關(guān)生態(tài)的定義和使用會(huì)更加規(guī)范和基于顯示聲明,包括插件、設(shè)置器和物料等等。
低代碼引擎官方生態(tài)原則:
低代碼引擎的生態(tài)分為官方維護(hù)和社區(qū)維護(hù)兩種,目前聲明的是后續(xù)在官方生態(tài)上的原則:
- 官方生態(tài)會(huì)提供 80% 最常用的精品生態(tài)插件,更多的插件需求由小伙伴們自己擴(kuò)展
- 官方生態(tài)主要提供及維護(hù)一份精品物料
- 官方生態(tài)未來(lái)會(huì)提供多種場(chǎng)景的能力,包括中后臺(tái)、移動(dòng)應(yīng)用、小程序、邏輯編排等等
- 官方生態(tài)會(huì)提供一系列的周邊能力,包括具有可流通的生態(tài)插件市場(chǎng)。
低代碼引擎近期會(huì)做什么
低代碼引擎有了長(zhǎng)遠(yuǎn)的愿景和目標(biāo),為了更加靠近我們的目標(biāo)。讓我們來(lái)看看低代碼引擎接下來(lái)的半年都會(huì)做什么呢。
應(yīng)用級(jí)編輯器
目前低代碼引擎在設(shè)計(jì)上是需要在單獨(dú)的頁(yè)面上使用的,他的擴(kuò)展功能也都是適用于頁(yè)面設(shè)計(jì)的。
但是大多數(shù)的場(chǎng)景中,我們都不是只設(shè)計(jì)一個(gè)頁(yè)面,我們還有導(dǎo)航配置、依賴配置、低代碼組件和邏輯編排等等應(yīng)用級(jí)別需要的功能。
甚至我們希望在低代碼搭建的過(guò)程中能有 VsCode 般絲滑的體驗(yàn)??焖偾袚Q頁(yè)面,快速配置應(yīng)用能力等等。而不是現(xiàn)在開(kāi)發(fā)一個(gè)頁(yè)面和一個(gè)低代碼組件就需要打開(kāi)至少三個(gè)新的標(biāo)簽頁(yè)。如果開(kāi)發(fā)的頁(yè)面和組件更多,需要打開(kāi)的標(biāo)簽頁(yè)也就越多。
因此,在使用低代碼平臺(tái)時(shí),我的瀏覽器常常就成為了這樣的。
為了解決這些問(wèn)題,我們提出來(lái)項(xiàng)目級(jí)別設(shè)計(jì)器的擴(kuò)展方案。
- 引擎主框架 Skeleton 能力升級(jí),支持項(xiàng)目級(jí)別的擴(kuò)展方案,提供更多的擴(kuò)展點(diǎn)。
- 引擎多畫(huà)布上下文快速切換,正如 VsCode 文件會(huì)有 JS、JSX、TS 等不同類型,對(duì)于不同類型的文件有不同的編輯狀態(tài)和提示。對(duì)于一個(gè)應(yīng)用來(lái)說(shuō),我們的文件也會(huì)有多種類型,例如:表單頁(yè)面、邏輯編排、低代碼組件、中后臺(tái)頁(yè)面等等。因此引擎需要提供多畫(huà)布切換以及共存的能力,這樣才能更好的完成應(yīng)用的搭建能力。
未來(lái)應(yīng)用級(jí)別的能力可能是這樣的,基于這樣的擴(kuò)展能力,我們就可以擴(kuò)展出應(yīng)用級(jí)設(shè)計(jì)器了。
除此之外我們?cè)?S2 也還會(huì)探索和研發(fā)的能力有,后續(xù)也可能會(huì)開(kāi)源或分享我們的解決方案:
- 圖編排能力,通過(guò)提供圖編排的能力,我們的邏輯編排能力也可以可視化了。
- 主題定制能力,可以對(duì)設(shè)計(jì)器的主題進(jìn)行定制,設(shè)計(jì)器再也不會(huì)千篇一律了。
- …
開(kāi)發(fā)更多社區(qū)周邊能力
一款新的免費(fèi)的低代碼產(chǎn)品
在項(xiàng)目開(kāi)源后我們發(fā)現(xiàn),很多用戶使用我們的 DEMO 來(lái)進(jìn)行頁(yè)面搭建來(lái)自用,但是 DEMO 實(shí)際上還不具備這樣的能力。經(jīng)過(guò)考慮,我們?cè)诮酉聛?lái)的半年會(huì)提供免費(fèi)的一款低代碼產(chǎn)品供大家簡(jiǎn)單搭建頁(yè)面使用,當(dāng)然免費(fèi)的就希望大家答疑上手下留情,多多互助。
低代碼生產(chǎn)組件能力
目前社區(qū)的低代碼組件都是 Pro Code 組件,相當(dāng)于物料的生產(chǎn)還沒(méi)有低代碼化。而我們的低代碼組件在阿里內(nèi)部也已經(jīng)有了將近一年的實(shí)踐,接下來(lái)我們也會(huì)在造物平臺(tái)上上線,讓大家可以通過(guò)低代碼的方式來(lái)生產(chǎn)低代碼組件。
這個(gè)主題也會(huì)在接下來(lái)的 GMTC 大會(huì)上進(jìn)行分享,有興趣的小伙伴可以關(guān)注一下。
低代碼設(shè)計(jì)器定制 Playground
通過(guò) Playground 我們可以在線快速插拔我們的插件、物料和設(shè)置器等等,所見(jiàn)即所得。這讓低代碼設(shè)計(jì)器的研發(fā)低代碼化成為了可能,也讓低代碼平臺(tái)的定制越來(lái)越簡(jiǎn)單。
當(dāng)然官方和社區(qū)的插件、物料、設(shè)置器也有了可視化的展示空間。
心有余而力不足部分
還有很多事情我們也都是希望能做,但是由于優(yōu)先級(jí)一直沒(méi)法安排的事情。在這里我們先列出來(lái),有需求的小伙伴可以參與進(jìn)來(lái)。
- 更多場(chǎng)景的 demo,這些 demo 包括不同的腳手架(ice、umi、egg、qiankun)、不同技術(shù)棧(Rax、React、Vue)、不同的應(yīng)用場(chǎng)景(PC、H5)等等。
- 更多的物料生態(tài),現(xiàn)在已經(jīng)有了 formily、Ant Design、Next Pro、Fusion。當(dāng)然我們還有很多沒(méi)有實(shí)現(xiàn)或者我們沒(méi)有感知到的,例如 antd-mobile、Element、Semi Design、Element for React,甚至在支持 Vue 技術(shù)棧之后,Element 等組件庫(kù)也需要低代碼化。
- 更多技術(shù)棧的支持,包括呼聲最高的 Vue,還在等社區(qū)大佬開(kāi)源。
當(dāng)然我們也會(huì)持續(xù)建設(shè)越來(lái)越多的教程文檔、越來(lái)越多的精品插件等等,也希望有小伙伴能參與進(jìn)來(lái),幫助我們加快進(jìn)程。