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