以下文章來源于OpenTiny ,作者路延剛
你是否曾經(jīng)在埋頭編碼的時候,別人用一行JavaScript代碼就解決了問題?這就像一個編碼魔術(shù)。
TinyEngine 低代碼引擎簡介
低代碼引擎是一種通用的開發(fā)框架,通過對低代碼平臺系統(tǒng)常用的功能進行解構(gòu),將其劃分為多個功能模塊,并為每個模塊定義了相應(yīng)的協(xié)議和開發(fā)范式,使得開發(fā)者可以根據(jù)自身的業(yè)務(wù)需求,輕松定制開發(fā)出自己的低代碼開發(fā)平臺。
TinyEngine 低代碼引擎作為低代碼平臺的底座,提供可視化搭建頁面等基礎(chǔ)能力,既可以通過線上搭配組合使用,也可以通過 cli 創(chuàng)建個人工程進行二次開發(fā),實時定制出自己的低代碼平臺。適用于多場景的低代碼平臺開發(fā),如:資源編排、服務(wù)端渲染、模型驅(qū)動、移動端、大屏端、頁面編排等。
TinyEngine 官網(wǎng):https://opentiny.design/tiny-engine
TinyEngine 源碼:https://github.com/opentiny/tiny-engine (歡迎star)
Java 版本開源介紹
自 TinyEngine 開源以來,我們發(fā)現(xiàn)越來越多企業(yè)和個人開發(fā)者開始基于 TinyEngine 搭建自己的低代碼平臺,也有大量用戶對服務(wù)端 Java 版本有著強烈的期待。針對這一需求,TinyEngine 團隊果斷將服務(wù)端 Java 版本開發(fā)列入重要計劃。經(jīng)過團隊成員的不懈努力,服務(wù)端 Java 版本終于問世,希望能為開源生態(tài)貢獻新的力量。
本次 TinyEngine 低代碼引擎服務(wù)端 Java 版本代碼的開源,讓開發(fā)者能夠深入了解 TinyEngine 低代碼引擎的前后端運行機制,更能夠讓更多的小伙伴以更深的層次參與到產(chǎn)品共建,共同探討并改進系統(tǒng),推動其不斷優(yōu)化,帶來更高的創(chuàng)新潛力,使得更多的人能夠從中受益。
同時服務(wù)端的開源為自由定制和擴展提供了可能,開發(fā)者可以參考 TinyEngine 的代碼,根據(jù)自身需求對服務(wù)端進行改造創(chuàng)新,從而使得產(chǎn)品更具靈活性,能夠滿足各種復雜的業(yè)務(wù)需求,構(gòu)建一個強大而健壯的低代碼生態(tài)系統(tǒng)。
TinyEngine 服務(wù)端 Java 源碼:https://github.com/opentiny/tiny-engine-backend-java(歡迎star)
1、項目概述
tiny-engine-backend-java 是一個基于 springboot、mybatisPlus、mysql 的服務(wù)端系統(tǒng),主要用于管理 TinyEngine 的業(yè)務(wù)邏輯、數(shù)據(jù)存儲、操作。該項目簡化開發(fā),提高效率,具有高擴展和高可維護性。
2、技術(shù)棧
Spring Boot :為項目提供快速開發(fā)和自動配置功能,簡化了傳統(tǒng) JavaEE 項目開發(fā)流程,它提供了內(nèi)嵌式的 Web 服務(wù)器(Tomcat)以及自動化配置功能,減少了大量的配置工作。
MyBatis Plus:在 MyBatis 基礎(chǔ)上封裝的增強工具,簡化了數(shù)據(jù)庫的操作,如自動生成 CRUD 操作代碼、動態(tài) sql、分頁查詢等,減少了手寫 sql 負擔,增加了開發(fā)效率。
MySQL:項目的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),負責持久化數(shù)據(jù),支持復雜的查詢和事務(wù)管理。
3、Java版本特性介紹
自動化配置:Spring Boot 自動化配置減少了繁瑣的 xml 配置,使得開發(fā)者可以專注于業(yè)務(wù)邏輯的開發(fā)。
高可拓展性:項目采用了松耦合的設(shè)計,便于后續(xù)功能擴展,例如可以添加更多功能模塊、支持多數(shù)據(jù)源等。
低耦合:為了降低服務(wù)耦合度,在 Node.js 版本的基礎(chǔ)上對數(shù)據(jù)庫表進行了重構(gòu),并對相關(guān)邏輯進行優(yōu)化,降低了開發(fā)難度和學習曲線,更能夠從服務(wù)端的角度去理解 TinyEngine 設(shè)計器的運行原理與設(shè)計思想 。
服務(wù)減負:去除了區(qū)塊構(gòu)建,改用區(qū)塊新方案,不再對 verdaccio 和 unpack 服務(wù)依賴,部署更輕松簡便,使用更得心應(yīng)手。
4、服務(wù)端架構(gòu)
5、數(shù)據(jù)模型設(shè)計
Java 版本重新設(shè)計了數(shù)據(jù)模型,對原有 js 版本的表字段做調(diào)整,去除由于 Strapi 的使用建立的冗余關(guān)聯(lián)表,讓表與表之間的關(guān)系更清晰。
數(shù)據(jù)模型ER表
Java 版本與 Node.js 差異
Java版本 | Node.js版本 | ||
優(yōu)點 | 缺點 | 優(yōu)點 | 缺點 |
性能:Java 編譯后的字節(jié)碼在 JVM(Java 虛擬機)上運行,性能通常優(yōu)于 Node.js。 | 啟動時間:由于 Java 需要 JVM 啟動,啟動時間通常比 Node.js 慢。 | 快速開發(fā):Node.js 基于 JavaScript,開發(fā)者可以利用瀏覽器的豐富生態(tài)系統(tǒng)和工具(如 npm ),實現(xiàn)快速開發(fā)和原型制作。 | 性能:Node.js 運行在V8引擎上,性能通常不如 Java。在處理計算密集型任務(wù)時,可能會表現(xiàn)不佳。 |
安全性:Java 有內(nèi)置的安全機制,如字節(jié)碼驗證,能夠更好地保護應(yīng)用程序免受惡意攻擊。 | 復雜的生態(tài)系統(tǒng):雖然 Java 生態(tài)系統(tǒng)豐富,但也意味著選擇和集成可能會比較復雜。 | 事件驅(qū)動:Node.js 基于事件驅(qū)動架構(gòu),非常適合 I/O 密集型應(yīng)用,如實時聊天、數(shù)據(jù)流處理等。 | 安全性:由于 Node.js 的生態(tài)系統(tǒng)相對較新,某些庫和工具可能存在安全漏洞。 |
可擴展性:Java 支持面向?qū)ο?a target="_blank">編程(OOP),具有良好的模塊化和可擴展性,適合大型企業(yè)級應(yīng)用。 | 資源消耗:Java 應(yīng)用程序通常對系統(tǒng)資源(如內(nèi)存和 CPU)要求較高。 | 非阻塞I/O :Node.js 使用非阻塞 I/O 模型,使其在處理大量并發(fā)連接時表現(xiàn)出色 | 可擴展性:雖然 Node.js 適合 I/O 密集型應(yīng)用,但在處理復雜業(yè)務(wù)邏輯和大型企業(yè)應(yīng)用時,可能需要額外的架構(gòu)設(shè)計和優(yōu)化。 |
豐富的生態(tài)系統(tǒng):Java 有一個龐大的生態(tài)系統(tǒng),包括豐富的框架(如 Spring、Hibernate)和庫,能夠簡化開發(fā)過程。 | 不支持原有的區(qū)塊方案 | 社區(qū)支持:Node.js 擁有一個活躍的開發(fā)者社區(qū)和豐富的包管理器 npm,能夠快速找到所需的庫和工具。 | 暫不支持區(qū)塊新方案,fork 用戶需要自己修改代碼支持 TinyEngine 的區(qū)塊新方案。 |
跨平臺:Java 的“寫一次,運行到處”的理念使其能夠在不同的平臺上運行。 | 成本低:由于 Node.js 是基于 JavaScript 的,開發(fā)者無需額外學習成本,且可以利用現(xiàn)有的前端開發(fā)技能。 | 后期(官方)主要工作重心將轉(zhuǎn)移至Java版本 |
附:Node.js 版本介紹
2024年年初 OpenTiny 開源了 TinyEngine 的 Node.js 版本服務(wù)端,其中包含 tiny-engine-webservice 和 tiny-engine-data-center 兩個微服務(wù),每個服務(wù)單元都可以獨立開發(fā)、測試和部署。這種架構(gòu)不僅提高了團隊的協(xié)作效率,還使得系統(tǒng)更容易擴展和維護。
Node.js 版本開源介紹詳情可見:https://mp.weixin.qq.com/s/7G1eviib45mMOC1_h762sA?token=645893077&lang=zh_CN
FAQ
1、Java服務(wù)端開源之后,如果不想啟動服務(wù)端服務(wù)器,是否還能沿用原來 mockServer?
答:可以正常使用 mockServer,啟動方式和原先一致,直接在項目里執(zhí)行pnpm dev即可
2、如果本地啟動了Java后端,那么前端本地工程是否還需要更改配置?如果需要,如何更改配置?
答:需要更改配置,更改流程如下:啟動tinyengine
修改 env 目錄下的 env.development 文件中的 VITE_ORIGIN 變量為本地 tiny-engine-backend-java 項目的地址端口
修改engine.config.js文件中的material值如圖
運行如下腳本啟動
pnpm install # 第一次啟動項目需要 pnpmserve:frontend
啟動成功后瀏覽器會自動打開設(shè)計器頁面
部署流程指導可參考官網(wǎng)使用手冊:平臺開發(fā)指南>解決方案>Java 服務(wù)端部署到服務(wù)器 章節(jié)(官網(wǎng)使用手冊:https://opentiny.design/tiny-engine#/help-center/course/dev)
未來規(guī)劃
1、人工智能:計劃將低代碼平臺與AIGC(人工智能生成內(nèi)容)技術(shù)相結(jié)合,為用戶提供更加智能、高效的應(yīng)用開發(fā)體驗。后續(xù)我們考慮將低代碼平臺的開發(fā)流程與AIGC技術(shù)相結(jié)合,通過自然語言處理、機器學習和深度學習等技術(shù),實現(xiàn)應(yīng)用界面的自動生成、功能模塊的智能推薦和代碼的自動化生成等功能。
2、模型驅(qū)動:我們將致力于將低代碼平臺與模型驅(qū)動能力相結(jié)合,為用戶提供更加高效、智能的開發(fā)體驗。深入研究各種業(yè)務(wù)模型,包括數(shù)據(jù)模型、業(yè)務(wù)流程模型等,以了解其特性和需求。后續(xù),我們將低代碼平臺的開發(fā)流程與模型驅(qū)動能力相結(jié)合,通過可視化建模工具和自動化技術(shù),實現(xiàn)業(yè)務(wù)模型的快速構(gòu)建和部署。通過這一創(chuàng)新性的接入方式,用戶將能夠更加高效地構(gòu)建和調(diào)整業(yè)務(wù)模型,降低開發(fā)難度和成本。
-
JAVA
+關(guān)注
關(guān)注
20文章
2983瀏覽量
106496 -
開源
+關(guān)注
關(guān)注
3文章
3533瀏覽量
43292 -
代碼
+關(guān)注
關(guān)注
30文章
4880瀏覽量
69993
原文標題:TinyEngine正式開源服務(wù)端Java版本
文章出處:【微信號:OSC開源社區(qū),微信公眾號:OSC開源社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
TCP服務(wù)端測試工具
TCP通信時服務(wù)端如何接收客戶端的數(shù)據(jù)?
Delphi教程之建立類型庫編輯DataSnap服務(wù)端
監(jiān)控服務(wù)器資源利用率的服務(wù)端腳本
MQTT中服務(wù)端和客戶端
服務(wù)端如何控制客戶端之間的信息通訊

Java SpringBoot項目:Node服務(wù)端搭建

評論