TinyEngine2.0正式發(fā)布
自從TinyEngine開源以來,眾多開發(fā)者已經(jīng)將TinyEngine應(yīng)用于生產(chǎn)環(huán)境,見證了其在實際項目中的表現(xiàn)。然而,隨著項目的持續(xù)迭代和用戶群體的不斷擴(kuò)大,我們發(fā)現(xiàn)用戶在深度定制方面會遇到一些阻礙,其中最核心的問題集中在:源碼二次開發(fā)管理問題以及定制化能力不夠強(qiáng)大,想要深度定制必須修改源碼,而當(dāng)開發(fā)者們在TinyEngine的源碼中融入了大量的定制業(yè)務(wù)邏輯,這又使得直接合并TinyEngine自身的新功能變得異常困難,常常引發(fā)代碼沖突和錯誤。
為了解決用戶的這些痛點問題,TinyEngine團(tuán)隊投入了大量的時間,對TinyEngine的架構(gòu)進(jìn)行了優(yōu)化和調(diào)整。這次的調(diào)整不僅提升了其核心性能,還精心打磨了一系列創(chuàng)新功能,旨在為開發(fā)者提供更流暢、更高效的開發(fā)體驗。
TinyEngine2.0新特性介紹
優(yōu)化的開發(fā)體驗:包引入與CLI工具
TinyEngine 2.0 版本的一大亮點是將源碼開發(fā)變成了包引入的模式,并且與之相結(jié)合的提供了CLI工具,徹底改變了用戶二次開發(fā)的方式。告別傳統(tǒng)克隆源碼模式,一鍵生成低代碼平臺項目。這里提供了@opentiny/tiny-engine-cli這個強(qiáng)大的 CLI 工具,只需執(zhí)行一條簡單的命令即可快速生成一個以 TinyEngine 為基礎(chǔ)的低代碼平臺項目:
npx@opentiny/tiny-engine-clicreate
生成的項目中tiny-engine作為一個核心npm包,package.json 文件依賴包含:
核心依賴:@opentiny/tiny-engine、主題等。
開發(fā)依賴:@opentiny/tiny-engine-vite-config、@opentiny/tiny-engine-mock等,為開發(fā)提供便利。
這樣的開發(fā)模式,主要有以下幾個特點:
非侵入式開發(fā),可以將二次開發(fā)內(nèi)容與TinyEngine核心代碼進(jìn)行分離,避免對核心代碼造成污染;
增強(qiáng)版本兼容性,擺脫源碼修改管理迭代更新難問題,可以輕松同步TinyEngine的官方代碼;
提高開發(fā)效率,CLI工具可以提供豐富的命令和腳手架,幫助開發(fā)者快速搭建低代碼平臺;
聚焦業(yè)務(wù)編碼,提供了一種標(biāo)準(zhǔn)化的開發(fā)流程,使得開發(fā)者能夠迅速進(jìn)入編碼狀態(tài)。
開創(chuàng)性的“洛書架構(gòu)”
在深入探討該架構(gòu)之前,大家可以先理解一個熟悉的計算機(jī)概念——Windows注冊表。Windows注冊表是一個中心化的數(shù)據(jù)庫,它存儲著系統(tǒng)、軟件程序以及硬件設(shè)備的配置和設(shè)置信息,為操作系統(tǒng)提供了一個統(tǒng)一的機(jī)制來存儲和檢索關(guān)鍵數(shù)據(jù),確保了系統(tǒng)的穩(wěn)定性和程序的正確運行。這樣的設(shè)計給TinyEngine也提供了靈感,TinyEngine也可以借助這樣的概念,給開發(fā)者提供出一個這樣的架構(gòu):
豐富的配置能力:架構(gòu)應(yīng)覆蓋全面,能夠?qū)φ麄€系統(tǒng)的組件、配置項、API等內(nèi)容進(jìn)行細(xì)致的定制化配置,以滿足不同場景的需求。
靈活的替換機(jī)制:通過注冊表機(jī)制,可以輕松地對組件、API等內(nèi)容進(jìn)行替換,實現(xiàn)靈活的插拔和定制。
函數(shù)級別的覆蓋能力:當(dāng)配置和替換能力無法滿足特定需求時,提供函數(shù)級別的覆蓋能力,作為最后的解決方案,確保用戶可以實現(xiàn)個性化的功能。基于這樣的原則,我們推出了我們TinyEngine的洛書架構(gòu)。它擁有全局的內(nèi)容存儲,記錄了所有可配置化的信息。這個架構(gòu)允許進(jìn)行插件的可插拔操作,實現(xiàn)插件的配置化管理,以及對插件API的集中管理。這樣的設(shè)計不僅提高了系統(tǒng)的靈活性,也為開發(fā)者提供了極大的便利。
“洛書架構(gòu)”為二次開發(fā)項目還提供了一種無縫對接最新特性的方式。在軟件開發(fā)的實際操作中,將基座系統(tǒng)的新特性同步到定制系統(tǒng)中往往是一項復(fù)雜的任務(wù)。當(dāng)一個系統(tǒng)已經(jīng)積累了大量的定制業(yè)務(wù)代碼時,嘗試直接集成新功能不僅會面臨巨大的技術(shù)挑戰(zhàn),還可能對現(xiàn)有業(yè)務(wù)邏輯的穩(wěn)定性以及系統(tǒng)的可維護(hù)性造成不利影響。在TinyEngine 2.0版本中,這一問題得到了有效的解決。
TinyEngine 2.0引入了一系列創(chuàng)新的架構(gòu)設(shè)計和功能增強(qiáng),使得新特性的集成變得更加順暢和高效。
interfaceMetaApp{ id:string //入口組件 entry?:VueComponent //可供定制的局部模塊組件,例如定制header、footer components?:Record//對外提供的api接口 apis?:Record //component的配置項 options?:Record //布局 layout?:MetaApp //生命周期 lifeCycle?:Record //覆蓋邏輯 overwrite?:Overwrite ……//其余可配置的項 }
這種架構(gòu)允許項目動態(tài)地注冊和使用TinyEngine的新功能,無需復(fù)雜的升級過程。這意味著開發(fā)者可以立即使用TinyEngine的最新成果,這種同步機(jī)制不僅提高了開發(fā)效率,還確保了項目能夠快速響應(yīng)TinyEngine的更新,保持技術(shù)的先進(jìn)性。
布局靈活:自由定義
“洛書架構(gòu)”是TinyEngine的一大創(chuàng)新,它提供了一種靈活的架構(gòu)系統(tǒng),允許開發(fā)者根據(jù)業(yè)務(wù)需求自由定義整個設(shè)計器的布局。在調(diào)研使用TinyEngine的開發(fā)者的過程中,發(fā)現(xiàn)TinyEngine被用于各種項目中,這也導(dǎo)致了布局非常多樣化。例如:有在底部加上schema面板、有在畫布旁邊加上流程相關(guān)面板、創(chuàng)建頁面時彈窗展示頁面模板等豐富的布局。
為了兼容多種布局,“洛書架構(gòu)”的推出可以滿足開發(fā)者可以輕松地創(chuàng)建復(fù)雜的頁面布局,而無需擔(dān)心底層實現(xiàn)的復(fù)雜性。
這種靈活性使得TinyEngine成為一個強(qiáng)大的工具,能夠滿足從簡單到復(fù)雜的各種開發(fā)需求。
畫布可以修改:技術(shù)棧畫布的靈活切換
除了設(shè)計器布局類型比較豐富以外,畫布的類型也是非常多的。例如,在需要快速布局的頁面編排場景中,可以選擇文檔流式畫布;而在需要精確控制的流程平臺中,則可以使用圖元編排的畫布。
TinyEngine的“洛書架構(gòu)”支持根據(jù)應(yīng)用場景靈活切換技術(shù)棧畫布,這意味著開發(fā)者可以根據(jù)項目的具體需求選擇最合適的技術(shù)方案。
這種靈活性使得TinyEngine能夠適應(yīng)不同的開發(fā)需求,提供高效的定制化開發(fā)支持。
快速使用第三方組件庫
TinyEngine默認(rèn)導(dǎo)入的組件庫是華為云開源的TinyVue組件庫。在開源之后,收到了部分小伙伴的反饋:“公司目前是使用elementUI組件庫的。能不能支持我們導(dǎo)入第三方組件庫。”這個答案是肯定的。得益于TinyEngine的渲染機(jī)制,TinyEngine支持導(dǎo)入其他的組件庫,如elementUI和Ant Design Vue(antdUI),極大地簡化了集成流程。除此以為,TinyEngine還提供組件復(fù)用方案,提供了區(qū)塊的能力。開發(fā)者能夠?qū)I(yè)務(wù)系統(tǒng)中可復(fù)用的組件提取出來,打包并上傳到平臺的資產(chǎn)管理庫中,集中管理版本,使其更靈活、更易用。相關(guān)的區(qū)塊局域網(wǎng)部署方案也已經(jīng)放到官網(wǎng)文檔里面了,大家可以查閱。
(官網(wǎng)文檔:https://opentiny.design/tiny-engine)
出碼可以定制成任意語言
TinyEngine的核心優(yōu)勢在于其對多種技術(shù)棧的深度支持。無論是前端開發(fā)中的主流框架Vue和React,還是為鴻蒙系統(tǒng)量身打造的ArkTS語言,TinyEngine都能夠靈活定制并輸出相應(yīng)技術(shù)棧的代碼。這種多技術(shù)棧的支持,使得TinyEngine能夠適應(yīng)各種開發(fā)需求。我們的開發(fā)者現(xiàn)在可以根據(jù)項目的具體需求,選擇最合適的技術(shù)棧,增強(qiáng)了項目的適應(yīng)性和擴(kuò)展性。
TinyEngine低代碼引擎的靈活代碼輸出能力,為開發(fā)者提供了一個強(qiáng)大的開發(fā)環(huán)境,可以根據(jù)系統(tǒng)自身的需要定制出需要的出碼語言。
嵌入任意的系統(tǒng)中使用
TinyEngine能夠高效集成至各垂直領(lǐng)域業(yè)務(wù)系統(tǒng),實現(xiàn)與第三方系統(tǒng)的無縫對接和參數(shù)流轉(zhuǎn)。這種集成能力,使得TinyEngine在多種業(yè)務(wù)場景中都能使用,無論是AI、流程管理還是教育領(lǐng)域,都能提供量身定制的解決方案。這種集成使得TinyEngine成為一個強(qiáng)大的工具,能夠滿足各種業(yè)務(wù)需求。
未來展望
TinyEngine 2.0 的發(fā)布,也讓TinyEngine自我迭代更新之路邁出了重要一步,希望全新的靈活定制擴(kuò)展能力能夠助力開發(fā)者更好的構(gòu)建自己的低代碼平臺。未來,TinyEngine也計劃引入更多功能,增強(qiáng)低代碼編排能力,讓開發(fā)過程體驗更友好。
模型驅(qū)動,高效開發(fā)頁面
目前TinyEngine在規(guī)劃中不僅支持模型驅(qū)動開發(fā),還允許開發(fā)者輕松實現(xiàn)模型事件的綁定,快速構(gòu)建多樣化的業(yè)務(wù)頁面。通過模型驅(qū)動架構(gòu),TinyEngine提升了代碼的一致性和可讀性,使得開發(fā)過程更加高效,同時也降低了后期維護(hù)的難度。這種架構(gòu)的優(yōu)勢在于,它將業(yè)務(wù)邏輯從代碼中抽象出來,使得開發(fā)者可以更加專注于業(yè)務(wù)本身,而不是深陷代碼的細(xì)節(jié)。開發(fā)者可以利用TinyEngine的模型驅(qū)動開發(fā)功能,快速構(gòu)建業(yè)務(wù)頁面,大大減少了代碼編寫的工作量,加速了整個開發(fā)流程。
AI輔助開發(fā)
TinyEngine深度融合AI輔助開發(fā),通過AI的深度集成,用戶可以迅速響應(yīng)業(yè)務(wù)需求,從設(shè)計到代碼實現(xiàn)一鍵轉(zhuǎn)換,優(yōu)化開發(fā)流程,縮短項目周期。目前,AI輔助開發(fā)依賴于大模型的生成能力。大模型的生成能力其實時好時壞。有時候生成的代碼渲染在畫布上面是非常高效的, 幾句話就能生成一個交互頁面,但是有時候生成的代碼又是不可用的,導(dǎo)致畫面渲染不出來。這功能我們內(nèi)部也在持續(xù)孵化完善中。
-
驅(qū)動
+關(guān)注
關(guān)注
12文章
1840瀏覽量
85289 -
開源
+關(guān)注
關(guān)注
3文章
3348瀏覽量
42496 -
源碼
+關(guān)注
關(guān)注
8文章
641瀏覽量
29208
原文標(biāo)題:TinyEngine2.0正式發(fā)布
文章出處:【微信號:OSC開源社區(qū),微信公眾號:OSC開源社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論