CUBA - 一个卓越的 Java 快速开发框架
文章目錄
- 引言
- CUBA - 一個企業(yè)級快速開發(fā)框架
- CUBA 架構(gòu)介紹
- CUBA 框架的能力
- 開箱即用的功能和界面
- 主菜單和界面布局
- 角色與安全控制
- 實體探查和實體恢復(fù)
- 可擴展性
- 成熟可信賴
- CUBA Studio - CUBA 平臺專用 IDE(集成IntelliJ IDEA)
- 費用如何
- 中文資源
引言
作為一個 IT 企業(yè)管理者,或者項目管理者,常常頭疼,現(xiàn)在項目做一個賠一個。開發(fā)人員不好招,甲方給的費用也不高,但是研發(fā)給出的估算總是特別高。看著研發(fā)給出的估算表,對比著甲方給出的預(yù)算,一個工時一個工時的摳,一個功能點一個功能點的排查,希望能找到適合團隊的成本線,才能知道這項目到底能不能接。研發(fā)團隊做事,不能高效快速一點嗎?
作為架構(gòu)師,一方面忙于解決各種技術(shù)結(jié)合點出現(xiàn)的問題。為了技術(shù)選型足夠跟得上時代、足夠穩(wěn)定好用,往往要花很多時間調(diào)研技術(shù)甚至親自上陣寫項目的關(guān)鍵部分。另一方面,還需要了解業(yè)務(wù)需求,根據(jù)業(yè)務(wù)需求設(shè)計業(yè)務(wù)數(shù)據(jù)結(jié)果和流程。
快速應(yīng)用開發(fā)(Rapid Application Development - RAD)平臺(或框架),能極大的提高團隊的工作效率。同時,RAD 平臺會集成時髦的技術(shù)和采用先進的架構(gòu),使得架構(gòu)師不需要考慮各個單點技術(shù)之間的結(jié)合點,而關(guān)注于業(yè)務(wù)系統(tǒng)的數(shù)據(jù)架構(gòu)和業(yè)務(wù)流程,將精力投入到客戶看得見的地方。
CUBA - 一個企業(yè)級快速開發(fā)框架
什么是 CUBA 框架?企業(yè)級、快速、開發(fā),這三個詞概括了 CUBA 框架的定位。CUBA 框架是 “用于業(yè)務(wù)應(yīng)用程序的全棧 Java 框架和組件”(詳見 CUBA 框架官網(wǎng) )。具體來說有三點:
基于以上的定位,“CUBA 是構(gòu)建后臺管理類應(yīng)用程序的最佳選擇,也可以作為對外服務(wù)或移動應(yīng)用的全面且可擴展的后端”。即:
最讓開發(fā)者心動的,CUBA 框架是開源的;如果框架的某些實現(xiàn)不符合客戶的業(yè)務(wù),CUBA 支持用 “擴展” 的方式讓用戶修改框架邏輯;甚至框架本身的數(shù)據(jù)庫設(shè)計也可以擴展。
如果你是企業(yè)技術(shù)管理人員或架構(gòu)師,繼續(xù)閱讀下文,CUBA 會給你驚喜,讓你躍躍欲試。
如果你是技術(shù)專家或者研發(fā)工程師,來了解一個正在快速發(fā)展的新框架吧!根據(jù)快速開始指南,五分鐘即可搭建一個帶完整管理頁面的 CRUD 系統(tǒng)。
CUBA:讀音 /'kju?b?/,古巴島 - CUBA 名稱的由來。
CUBA 架構(gòu)介紹
下圖是 CUBA 的架構(gòu)圖,可以看到其核心包括 WEB、PORTAL、CORE、GLOBAL 四個模塊。
其中,GLOBAL 模塊的數(shù)據(jù)模型、API 接口、配置接口可以在所有模塊被訪問到。但是 WEB 界面層和 PORTAL 層是獨立的,之間不能互相訪問,但是它們都能通過 CORE 層讀寫數(shù)據(jù)。
由此可見 CUBA框架非常全面,它是基于 Spring 的 Java EE 框架(最新版已經(jīng)全面支持 Kotlin), 是一個涵蓋了從數(shù)據(jù)模型到界面的全棧架構(gòu),提供數(shù)據(jù)訪問、服務(wù)、REST API、TypeScript SDK。根據(jù)最新的研發(fā)進度,目前已經(jīng)提供了基于 React 的前端初始化帶登錄的界面。
了解更多關(guān)于 CUBA 框架的架構(gòu)介紹,可以閱讀這篇文章。
下一章節(jié),我們介紹一下CUBA 框架開箱即用的功能。
CUBA 框架的能力
企業(yè)級應(yīng)用開發(fā)從 1990 年代中期開始,至今快速發(fā)展了 20 多年。基于老一輩快速開發(fā)平臺(Dephi,FoxPro 等)的業(yè)務(wù)應(yīng)用系統(tǒng)比比皆是,極大地提高了當(dāng)時基于計算機的工作效率。可惜的是,這些平臺并沒有能在 Web 時代繼續(xù)閃耀,要么不支持 Web 開發(fā),要么演進太慢。CUBA 平臺等基于 Web 的企業(yè)快速開發(fā)平臺得以從前輩們的骨灰中崛起。(摘自 快速開發(fā)平臺 20 年的演進)。
CUBA 框架在技術(shù)和功能方面,都是極為優(yōu)秀的開發(fā)平臺。技術(shù)方面,CUBA 集成了全球領(lǐng)先的企業(yè)級 Web 開發(fā)技術(shù),提供大量的企業(yè)級開發(fā)界面組件、提供全棧架構(gòu);另外框架還帶有所見即所得、大大提高效率的 IDE開發(fā)環(huán)境(集成 IntelliJ IDEA 的 CUBA Studio)。
功能方面,CUBA 提供了自帶的文件存儲、主界面、用戶和角色管理、從數(shù)據(jù)庫行級別至界面組件級別的用戶權(quán)限配置、數(shù)據(jù)軟刪除、管理員菜單、運行機器性能統(tǒng)計等開箱即用的功能。另外,CUBA 的插件市場還提供了包括 REST API、單點登錄、報表、圖表、工作流、全文檢索等即插即用的組件。
使用 CUBA 框架一方面能提高公司和開發(fā)人員的技術(shù)實力,另一方面可以極大提升工作效率。
開箱即用的功能和界面
我們知道,在企業(yè)應(yīng)用開發(fā)領(lǐng)域,很多需求其實是通用的;CUBA 框架把這些通用功能為你實現(xiàn)了,下面介紹其中的一些常用的主要功能。
主菜單和界面布局
CUBA 默認(rèn)提供了可伸縮的左邊欄菜單樣式、管理員菜單與幫助菜單。如下圖。
下圖右側(cè)是一個角色權(quán)限配置頁面,從這個頁面能看到部分 CUBA 界面組件:面包屑導(dǎo)航、輸入控件、標(biāo)簽頁、分組表格等。
另外,CUBA 也支持使用頂部菜單的的布局,小小的設(shè)置一下即可。
角色與安全控制
同樣在上圖,角色管理界面,我們可以看到,針對一個特定角色的配置,CUBA 可以支持界面訪問權(quán)限、實體權(quán)限(支持?jǐn)?shù)據(jù)庫行級別訪問權(quán)限)、實體屬性權(quán)限(控制實體個別屬性是否可訪問)、特定權(quán)限(比如是否可修改全局樣式)、界面元素權(quán)限(比如是否可看到某個按鈕)。
最便捷的方式是針對不同的業(yè)務(wù)配置不同的角色,某個用戶需要哪項業(yè)務(wù),即將對應(yīng)的角色分配給用戶,角色可以組合使用。
實體探查和實體恢復(fù)
實體探查,是指通過界面直接查看數(shù)據(jù)庫實體數(shù)據(jù)。如下圖,管理員可以通過該界面對數(shù)據(jù)庫進行CRUD 操作。這個頁面你可以看到CUBA 提供的過濾器;對于每個表格,都可以配置默認(rèn)的過濾器,無需為不同實體手寫不同的過濾條件;這個頁面你也可以看到創(chuàng)建、編輯、移除、Excel、導(dǎo)入、導(dǎo)出等操作功能按鈕,這些都是CUBA表格組件默認(rèn)支持的操作。
CUBA默認(rèn)使用軟刪除(即數(shù)據(jù)不會真正從數(shù)據(jù)庫刪除,只是做移除標(biāo)記),因此不必?fù)?dān)心數(shù)據(jù)丟失。刪除的數(shù)據(jù)可以通過 恢復(fù)刪除的實體 界面進行恢復(fù)。
CUBA 框架還默認(rèn)支持WEB安全設(shè)施、用戶管理模塊、多語言和多時區(qū)、通用REST API、報表管理、工作流、全文檢索等功能。
另外還有下列管理員工具開箱即用:日志查看功能、實體(Entity)探查、性能統(tǒng)計、定時任務(wù)、數(shù)據(jù)恢復(fù)、Session查看。
查看 這篇文章 可以進一步了解上述開箱即用功能。
可擴展性
業(yè)務(wù)需求千變?nèi)f化,開箱功能有時候可能也與客戶的需求沒有完全契合,這個時候 CUBA 框架獨特的應(yīng)用程序組件擴展技術(shù) 可以讓用戶輕松修改框架邏輯。
任何使用 CUBA 框架開發(fā)的應(yīng)用都可以作為組件集成到另一個 CUBA 項目中,而 CUBA 提供對這些組件做進一步修改、擴展的方式,你可以輕松實現(xiàn):
所以,基于 CUBA 框架開發(fā)的組件,集成到你項目中后,便可以做上述擴展;而 CUBA 框架本身也是一種 CUBA 組件,所以你也同樣可以對 CUBA 框架自有的實體進行擴展和替換!比如可以擴展默認(rèn)的 用戶 類,添加新字段,只要在開發(fā)環(huán)境中勾選 Replace Parent,則框架會自動使用自定義擴展后的 新 用戶 類作為 User 實體。
來 CUBA 的組件市場看看,它們可以為你的項目提供更多的功能與便利。
成熟可信賴
如果只看一個框架的當(dāng)前狀態(tài),是沒有辦法下決心使用的。因為還有幾個因素需要考慮:
使用 CUBA 框架你不需要擔(dān)心上述問題:
CUBA Studio - CUBA 平臺專用 IDE(集成IntelliJ IDEA)
最后不得不提到 CUBA Studio,一款開發(fā)利器。將 CUBA Studio 以插件的方式提供給 IntelliJ IDEA,將這款世界上最好的代碼編輯器與 CUBA 項目設(shè)計器結(jié)合在一起,給了任何獨立軟件都不能提供的高效率編程體驗,這里列舉一些主要功能:
費用如何
在您選擇是否付費之前,可以免費試用 CUBA Studio 商業(yè)版 30 天。所以在您做決策之前,有足夠的時間深入了解 CUBA 框架和 CUBA Studio。
另外,如果您的團隊只有一個人負(fù)責(zé)界面設(shè)計或?qū)嶓w設(shè)計,可以只購買一個商業(yè)許可。如果您的團隊通過一段時間的使用之后,能夠脫離可視化設(shè)計器直接通過代碼編寫界面、設(shè)計實體,則可以選擇不再續(xù)費。
但是筆者相信,如果你用過可視化設(shè)計器后,是不會想放棄的 😄
中文資源
CUBA 框架在 2018 年登陸中國,經(jīng)過一年多的發(fā)展,中文文檔已經(jīng)完善;社區(qū)也很活躍。所以,來,做個早鳥吧~
中文官網(wǎng): https://www.cuba-platform.cn
中文論壇: https://forum.cuba-platform.cn
微信公眾號: CUBACN
總結(jié)
以上是生活随笔為你收集整理的CUBA - 一个卓越的 Java 快速开发框架的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于 @EnableConfigurat
- 下一篇: 塑造运动的包豪斯平面设计实例