文章目录

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

引言

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

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

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

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

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

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

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

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

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

如果你是企业技术管理人员或架构师,继续阅读下文,CUBA 会给你惊喜,让你跃跃欲试。
如果你是技术专家或者研发工程师,来了解一个正在快速发展的新框架吧!根据快速开始指南,五分钟即可搭建一个带完整管理页面的 CRUD 系统。

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

CUBA 架构介绍

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

  1. WEB - 后台管理系统界面。使用基于 Vaadin 框架开发的 Web 界面组件库。Vaadin 是使用 Java 写 Web UI 的唯一选择。后台管理系统的 UI 界面代码都存储在这个模块中。
  2. PORTAL - 基于 Spring MVC 的模块,这里可以写 Spring controller,提供自定义的 API。另外,这里也是与对外应用或者移动应用的接口。注意到左边有 TypeScript SDK,这个主要用于使用 Typescript 开发的纯前端应用,比如 React 或者 Angular。
  3. CORE - 核心中间件模块。Service 的实现在这个模块中,这个模块也负责读写数据库。
  4. 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 提供对这些组件做进一步修改、扩展的方式,你可以轻松实现:

  1. 实体扩展 - 可以添加新的字段。
  2. 界面扩展 - 可以修改或者以原界面为模板开发新界面。
  3. 业务扩展 - 服务可以进行继承并修改。

所以,基于 CUBA 框架开发的组件,集成到你项目中后,便可以做上述扩展;而 CUBA 框架本身也是一种 CUBA 组件,所以你也同样可以对 CUBA 框架自有的实体进行扩展和替换!比如可以扩展默认的 用户 类,添加新字段,只要在开发环境中勾选 Replace Parent,则框架会自动使用自定义扩展后的 新 用户 类作为 User 实体。

来 CUBA 的组件市场看看,它们可以为你的项目提供更多的功能与便利。

成熟可信赖

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

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

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

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

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

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

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

费用如何

  1. CUBA 框架本身完全开源免费,国内在 Gitee 有 Github 的镜像。
  2. CUBA Studio 部分收费。CUBA Studio 的代码生成、依赖注入、事件监听等功能可以免费使用。所见即所得的数据库实体和界面的可视化设计器为收费功能。 具体可以查看这里。
    在您选择是否付费之前,可以免费试用 CUBA Studio 商业版 30 天。所以在您做决策之前,有足够的时间深入了解 CUBA 框架和 CUBA Studio。
    另外,如果您的团队只有一个人负责界面设计或实体设计,可以只购买一个商业许可。如果您的团队通过一段时间的使用之后,能够脱离可视化设计器直接通过代码编写界面、设计实体,则可以选择不再续费。

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

CUBA - 一个卓越的 Java 快速开发框架相关推荐

  1. 手把手教你如何搭建一个自己的安卓快速开发框架之带你做自己的APP(二)

    ####点击查看上一篇文章:手把手教你如何搭建一个自己的安卓快速开发框架之BaseActivity(一) 继上一篇我实现了基本的BaseActivity,包含 ToolBar 透明状态栏 生命周期监控 ...

  2. Ultimate++是一个C++跨平台应用快速开发框架

    Ultimate++是一个C++跨平台应用快速开发框架 U++是一个注重提高编程效率的C++跨平台应用快速开发框架,包括一系列库(GUI. SQL等)和一个集成开发环境. 快速开发是通过智能.主动使用 ...

  3. java eop_javashopeop Javashop-eop是一套开源的java快速开发框架 联合开发网 - pudn.com

    javashopeop 所属分类:Java编程 开发工具:Java 文件大小:10761KB 下载次数:5 上传日期:2017-01-24 13:21:05 上 传 者:zhangqiang 说明:  ...

  4. SpringBoot+Vue前后端分离的Java快速开发框架 工作流开发框架

    多聚合是一套全部开源的Java快速开发平台,毫无保留给个人及企业免费使用. 我们集成了常见的功能模块. 前端采用Vue.Element UI. 后端采用Spring Boot.Shiro.Redis. ...

  5. 以简求快--java快速开发框架

    照例先发发牢骚,然后再进入正题. 领导说每个人应该看清自己的短板,我看的很清,我只是没上过他们所谓的学而已,这并不能成为我发展的障碍,更不能作为贬低我价值的理由. 最会做生意的人是,把成年的蛋鸡杀掉, ...

  6. Java快速开发框架LML简介

    LML在这种情况下的夹缝中诞生.我并非高手,所以LML也不算完善.         首先:LML基于SSH.一直以来都被公司使用的Castle框架的快速简洁而折服,在不追求运行效率的情况下,它堪称完美 ...

  7. java 快速开发框架平台 代码生成器 springmvc SSM后台框架源码

    博文来源:http://www.fhadmin.org/webnewsdetail2.html A代码编辑器,在线模版编辑,仿开发工具编辑器,pdf在线预览,文件转换编码 B 集成代码生成器 [正反双 ...

  8. java 快速开发框架平台 二次开发 代码生成器 springmvc SSM后台框架源码

    官网 http://www.fhadmin.org/ D 集成安全权限框架shiro   Shiro 是一个用 Java 语言实现的框架,通过一个简单易用的 API 提供身份验证和授权,更安全,更可靠 ...

  9. Java快速开发框架_若依——Ruoyi-SpringCloud版本-3.下载源码并导入数据库 安装nacos

    QQ 1274510382 Wechat JNZ_aming 商业联盟 QQ群538250800 技术搞事 QQ群599020441 解决方案 QQ群152889761 加入我们 QQ群6493473 ...

  10. Java快速开发框架_若依——Ruoyi-SpringCloud版本-2.安装redis服务端和客户端-win7

    QQ 1274510382 Wechat JNZ_aming 商业联盟 QQ群538250800 技术搞事 QQ群599020441 解决方案 QQ群152889761 加入我们 QQ群6493473 ...

最新文章

  1. python序列类型-python序列类型种类详解
  2. HDU3247 Resource Archiver(AC自动机+BFS+DP)
  3. React开发(158):ant design级联回显 直接传入数组
  4. IDEA 类名下有红线解决方案:
  5. 网页编辑PHP变量,编辑文件中的php代码和变量
  6. javascript 原生事件综合查询
  7. 在XNA 3.0 项目添加声音——通过Xact播放简单的.wav文件
  8. error: 'NULL' was not declared in this scope
  9. 摩托罗拉投资Android社交游戏拓荒商Moblyng
  10. Latex格式投稿需注意的问题_以BSPC和BMC BioInformatics为例
  11. centos下将普通命令设置为全局
  12. 小程序 params_08. 小程序项目实战:设置首页轮播图(3)
  13. OSG开发笔记(二十三):Qt使用QOpenGLWidget渲染OSG和地球仪
  14. 【转】常用0x000000类型颜色代码表
  15. Java 关键字及其作用(保留字)
  16. Android Title标题栏的修改(隐藏,菜单)
  17. 荣耀x10更新鸿蒙,华为手机不要乱买,这4款是最值得选择的,全都可升级到鸿蒙系统...
  18. 在网络中狂奔:KCP协议
  19. Karl Guttag:Magic Leap 2光学解析,部分指标超HoloLens 2
  20. python字符串赋值多个变量(Python字符串赋值)

热门文章

  1. 【转帖】用友和金蝶应避免重蹈Oracle覆辙
  2. mysql查询年龄段多少人_mysql中一张(居民)表按年龄段查询数据
  3. POPE-NH|1-棕榈酰基-2-油酰基磷脂酰乙醇胺POPE与NHS(N-羟基琥珀酰亚胺)酯偶联物
  4. NKOJ 4234 三角分形
  5. word页眉页脚,奇偶不同
  6. 【转载】GitHub中国区前100名到底是什么样的人
  7. 软路由虚拟服务器,VMware虚拟机安装软路由(OpenWrt)详细教程
  8. Flask部署机器学习模型---基于线性回归模型的销售预测系统实现简易版代码
  9. 搞懂朴素贝叶斯分类算法
  10. Graphics.DrawString 方法