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