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