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