700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > CUBA - 一个卓越的 Java 快速开发框架

CUBA - 一个卓越的 Java 快速开发框架

时间:2024-04-14 00:58:27

相关推荐

CUBA - 一个卓越的 Java 快速开发框架

文章目录

引言CUBA - 一个企业级快速开发框架CUBA 架构介绍CUBA 框架的能力开箱即用的功能和界面主菜单和界面布局角色与安全控制实体探查和实体恢复可扩展性成熟可信赖CUBA Studio - CUBA 平台专用 IDE(集成IntelliJ IDEA)费用如何中文资源

引言

作为一个 IT 企业管理者,或者项目管理者,常常头疼,现在项目做一个赔一个。开发人员不好招,甲方给的费用也不高,但是研发给出的估算总是特别高。看着研发给出的估算表,对比着甲方给出的预算,一个工时一个工时的抠,一个功能点一个功能点的排查,希望能找到适合团队的成本线,才能知道这项目到底能不能接。研发团队做事,不能高效快速一点吗?

作为架构师,一方面忙于解决各种技术结合点出现的问题。为了技术选型足够跟得上时代、足够稳定好用,往往要花很多时间调研技术甚至亲自上阵写项目的关键部分。另一方面,还需要了解业务需求,根据业务需求设计业务数据结果和流程。

快速应用开发(Rapid Application Development - RAD)平台(或框架),能极大的提高团队的工作效率。同时,RAD 平台会集成时髦的技术和采用先进的架构,使得架构师不需要考虑各个单点技术之间的结合点,而关注于业务系统的数据架构和业务流程,将精力投入到客户看得见的地方。

CUBA - 一个企业级快速开发框架

什么是 CUBA 框架?企业级、快速、开发,这三个词概括了 CUBA 框架的定位。CUBA 框架是 “用于业务应用程序的全栈 Java 框架和组件”(详见 CUBA 框架官网 )。具体来说有三点:

CUBA 框架的定位是用于开发业务应用程序- 主要是用来开发业务应用,也就是以前说的 LOB 系统。CUBA 的技术架构着力于全栈 Java框架 - 以 Java(Kotlin) 为基础开发语言。CUBA 框架的工作模式为组件式- 除 CUBA 基本平台功能外,用户还可以自由组合其他需要的组件。

基于以上的定位,“CUBA 是构建后台管理类应用程序的最佳选择,也可以作为对外服务或移动应用的全面且可扩展的后端”。即:

CUBA 是后台管理类应用程序的最佳选择 - 什么是后台管理类应用程序?ERP/CRM 这类。界面简洁紧凑不花哨,以展示数据,方便操作为主要目的。作为对外服务和移动应用的可扩展后端 - CUBA 可以作为带管理员操作页面的互联网后端服务,为前端和移动应用提供 REST API。 不仅如此,这个后端是可扩展的,CUBA 的组件模式可以让用户更快读、便捷的引入不同功能的组件。

最让开发者心动的,CUBA 框架是开源的;如果框架的某些实现不符合客户的业务,CUBA 支持用 “扩展” 的方式让用户修改框架逻辑;甚至框架本身的数据库设计也可以扩展。

如果你是企业技术管理人员或架构师,继续阅读下文,CUBA 会给你惊喜,让你跃跃欲试。

如果你是技术专家或者研发工程师,来了解一个正在快速发展的新框架吧!根据快速开始指南,五分钟即可搭建一个带完整管理页面的 CRUD 系统。

CUBA:读音 /'kjuːbə/,古巴岛 - CUBA 名称的由来。

CUBA 架构介绍

下图是 CUBA 的架构图,可以看到其核心包括WEBPORTALCOREGLOBAL四个模块。

WEB- 后台管理系统界面。使用基于 Vaadin 框架开发的 Web 界面组件库。Vaadin 是使用 Java 写 Web UI 的唯一选择。后台管理系统的 UI 界面代码都存储在这个模块中。PORTAL- 基于 Spring MVC 的模块,这里可以写 Spring controller,提供自定义的 API。另外,这里也是与对外应用或者移动应用的接口。注意到左边有 TypeScript SDK,这个主要用于使用 Typescript 开发的纯前端应用,比如 React 或者 Angular。CORE- 核心中间件模块。Service 的实现在这个模块中,这个模块也负责读写数据库。GLOBAL- 全局模块。这里放 Service API 的接口以及全局配置接口和数据模型的代码。

其中,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 的组件市场看看,它们可以为你的项目提供更多的功能与便利。

成熟可信赖

如果只看一个框架的当前状态,是没有办法下决心使用的。因为还有几个因素需要考虑:

框架的核心开发是否活跃 - 决定了一旦使用过程中框架有 bug,是否能得到及时的维护。框架的用户基础怎么样 - 决定了框架是否稳定,问题数和用户数一般来讲是成反比的。框架是否在进化 - 决定了技术是否能一直跟进和演化,不至于被时代淘汰。

使用 CUBA 框架你不需要担心上述问题:

框架从最初的版本发展到现在的 7.2,历经 10 多年的演进,核心团队一直在活跃开发,bug 修复及时快速。10 多年积累的用户,有中英俄三种语言的活跃论坛, 你可以通过论坛反馈、讨论。框架一直在进化。最近,在前端界面部分,集成了全球用户数最大的 React 库。后端部分,全面支持了新的 JVM 开发语言 Kotlin。核心研发团队一直在跟踪技术的演进和转化。可以查看CUBA博客,了解团队对企业开发技术趋势的关注。

CUBA Studio - CUBA 平台专用 IDE(集成IntelliJ IDEA)

最后不得不提到 CUBA Studio,一款开发利器。将 CUBA Studio 以插件的方式提供给 IntelliJ IDEA,将这款世界上最好的代码编辑器与 CUBA 项目设计器结合在一起,给了任何独立软件都不能提供的高效率编程体验,这里列举一些主要功能:

界面前端代码和界面后台控制器代码之间互相跳转。界面、实体的可视化设计,支持拖拽组件。(付费功能)代码生成,界面事件、依赖注入、代理、操作,各种部件一应俱全。使用 IDEA 的智能提示,代码完成功能。自动部署,支持热部署。

费用如何

CUBA 框架本身完全开源免费,国内在 Gitee 有 Github 的镜像。CUBA Studio部分收费。CUBA Studio 的代码生成、依赖注入、事件监听等功能可以免费使用。所见即所得的数据库实体和界面的可视化设计器为收费功能。 具体可以查看这里。

在您选择是否付费之前,可以免费试用 CUBA Studio 商业版 30 天。所以在您做决策之前,有足够的时间深入了解 CUBA 框架和 CUBA Studio。

另外,如果您的团队只有一个人负责界面设计或实体设计,可以只购买一个商业许可。如果您的团队通过一段时间的使用之后,能够脱离可视化设计器直接通过代码编写界面、设计实体,则可以选择不再续费。

但是笔者相信,如果你用过可视化设计器后,是不会想放弃的 😄

中文资源

CUBA 框架在 年登陆中国,经过一年多的发展,中文文档已经完善;社区也很活跃。所以,来,做个早鸟吧~

中文官网: https://www.cuba-

中文论坛: https://forum.cuba-

微信公众号: CUBACN

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。