CabloyJS 是什么样的框架
CabloyJS 是一款自带 工作流引擎
的 Node.js 全栈框架,一款 面向开发者
的低代码开发平台,更是一款兼具低代码的 开箱即用
和业余代码的 灵便定制
的 PAAS 平台
CabloyJS 内置的每一项个性都做到精心调校,均体现了从 开箱即用
到灵便定制
的无缝连接,包含:角色零碎、用户认证、菜单权限、数据权限、表单渲染、表单验证、工作流引擎、字典、仪表板、在线推送、页面主题、多语言国际化、CMS 渲染引擎、微信接口、企业微信接口、钉钉接口,等等
技术栈
场景 | 技术栈 |
---|---|
前端 | vue2 + framework7 |
后端 | koa2 + egg2 |
数据库 | mysql |
分布式(缓存 / 队列 / 音讯) | redis、bullmq、websocket |
Markdown 富文本编辑 | Prosemirror |
在线演示
请应用 PC 和 Mobile 别离拜访演示站点,体验不同凡响的 pc=mobile+pad
自适应格调,真正的跨多端架构,一套代码同时适配 PC 端和 Mobile 端
场景 | 链接 / 二维码 |
---|---|
PC 端 | https://test.cabloy.com/ |
Mobile 端 |
账号类型 | 名称 | 明码 |
---|---|---|
管理员 | admin | 123456 |
普通用户 | tom | 123456 |
普通用户 | jane | 123456 |
引言
但凡能够用 JavaScript 来写的利用,最终都会用 JavaScript 来写 | Atwood 定律
目前市面上呈现的大多数与 NodeJS 相干的框架,根本都将 NodeJS 定位在 工具层
、 聚合层
、 中间层
、 代理层
,很少在业务层面进行深耕,认为这是 JAVA 的畛域,NodeJS 不适宜。这种思潮显著是与Atwood 定律
相悖的
如果您想感触不同的 NodeJS 全栈开发体验,肯定要试试自带工作流引擎的 CabloyJS 全栈开源框架。为了晋升业务层面的开发效率和开发体验,CabloyJS 在前端和后端均提供了大量实用的工具和组件
CabloyJS 解决了哪些事实痛点问题?
在 NodeJS 开发畛域,目前 (截止 2022 年 1 月) 存在以下几个痛点问题:
1. 中后盾管理系统如何更优雅的反对挪动端?
随着挪动终端的遍及和升级换代,大量业务场景都须要挪动端的反对,比方管理层须要通过手机查看统计数据、审核业务单据;运维人员通过手机近程查看服务器状态,并进行调整优化
咱们晓得,市面上大多数中后盾管理系统,都是优先适配 PC 端,然而挪动端体验却不佳,处于 勉强可用,但不好用
的阶段
此外,大多数 XXX Admin 框架
和中后盾治理框架
其本质是 代码模版
。在具体开发我的项目时,间接在 代码模版
中编写代码。这样,尽管批改起来很间接,然而不利于模版的继续降级和优化;也不利于业务代码的继续积淀和迁徙(至其余我的项目)。因而,当把 代码模版
从源码仓库下载下来之后,批改三分之一
, 减少三分之一
, 删减三分之一
,从此就与 代码模版
的后续降级版本绝缘了
2. NodeJS 畛域没有好用的工作流引擎!
如果单说 CRUD,大多数编程语言的开发框架都能够轻松实现,这不应该成为 NodeJS 开发业务零碎的外围劣势。若要让 NodeJS 深刻业务畛域的开发,工作流引擎
是一个绕不过来的外围组件
3. 拖拽式低代码平台曾经成为鸡肋计划!
大多数业务表单不仅仅是一些字段的简略组合和增删改查,不同的业务都有本人独特的业务诉求,往往须要前端界面的定制和后端逻辑的定制。拖拽式低代码平台,对于业务人员而言没有足够的工具进行深刻定制,对于研发人员而言也没有足够的机制深刻开发
许多拖拽式低代码平台意识到了这一点,所以针对不同的业务场景提供官网预配置的套装解决方案,这同样也把业务人员和研发人员置于 不上不下
的难堪地步,成为 食之无味 弃之可惜
的鸡肋平台
CabloyJS 亮点介绍
基于上述剖析的问题,CabloyJS 实现了如下 性能三大亮点
和架构三大亮点
1. 性能三大亮点
- 自适应布局:pc = mobile + pad
CabloyJS 独创 pc = mobile + pad
的自适应布局机制:只须要一套代码,mobile 端
达到原生成果,同时将 mobile 端
的操控体验和开发模式无缝带入pc 端
请大家别离在 PC 端和手机端关上 演示链接
: https://test.cabloy.com/,来领会不同凡响的自适应机制
- 基于 JSON Schema 的表单主动渲染与数据验证引擎
通过在一处定义 JSON Schema
,就能够同时反对前端的 表单主动渲染
和后端的 数据验证
,既能开箱即用又可灵便定制
- 内置 NodeJS 工作流引擎
CabloyJS 充分利用 JS 语言的灵活性和 JSON 格局的便捷性,提供的 NodeJS 工作流引擎
远比 JAVA 畛域的Activiti
简洁易用
比方,咱们个别只晓得如何应用 Activiti
中提供的 流动节点
和边界事件
,却很少有路径来理解如何开发 自定义的流动节点
和自定义的边界事件
。因为Activiti
的架构繁冗,大多数人甚至不违心尝试去浏览源码。然而 CabloyJS 提供的 工作流引擎
却能够轻松的定制所有的工作流元素,而且源码档次清晰,易于学习
2. 架构三大亮点
作为一款面向开发者的低代码开发平台,为了将低代码的 开箱即用
和业余代码的 灵便定制
有机交融,CabloyJS 在架构层面次要做了以下几点:
- 模块化开发体系与模块隔离
为了满足大型业务零碎开发的诉求,CabloyJS 采纳 模块思维
规划系统架构,以业务性能为单位(比方出差申请),将与业务性能相干的前端组件与后端逻辑组织为一个 业务模块
,从而有利于业务性能的内聚与重用,也有利于以业务为单位进行团队分工
此外,业务模块外部的页面、数据、逻辑、路由、配置等元素均进行了命名空间隔离解决,从而防止模块之间的变量净化与抵触。换句话说,当咱们在本人的业务模块中为某个资源命名时,不必放心其余业务模块是否存在雷同名称的资源,从而缩小心智累赘
- 原生分布式架构
EggJS 的定位是框架的框架,CabloyJS 后端在 EggJS 的根底上采纳 自定义 Loader
机制扩大进去了一套适配业务场景的新个性
比方,EggJS 原有的 Worker + Agent
过程模型,对于单机而言十分便当。然而面对多机集群,特地是基于 docker
的集群部署而言,Agent 过程
就失去了用武之地。更重要的是,如果一开始基于 Agent 过程
进行开发,后续很难平滑的过渡到分布式场景。因而,CabloyJS 后端采纳 Redis
,从框架底层就开始原生分布式的架构设计,并衍生出了Broadcast、Queue、Schedule、Startup
等一系列分布式的开发组件,不便咱们从一开始就进行分布式的开发。因而当零碎起量后,能够轻松做集群扩大,参见:Broadcast, Queue, Schedule, Startup
- 前后端拆散,全场景开发
通过前后端拆散的架构设计,能够反对全场景业务的疾速开发
场景 | 前端 | 后端 |
---|---|---|
PC:Web | CabloyJS 前端 | CabloyJS 后端 |
PC:Exe | CabloyJS 前端 + Electron | CabloyJS 后端 |
Mobile:IOS | CabloyJS 前端 + Cordova | CabloyJS 后端 |
Mobile:Android | CabloyJS 前端 + Cordova | CabloyJS 后端 |
微信公众号 | CabloyJS 前端 + 微信 API | CabloyJS 后端 |
企业微信 | CabloyJS 前端 + 企业微信 API | CabloyJS 后端 |
钉钉 | CabloyJS 前端 + 钉钉 API | CabloyJS 后端 |
Slack | CabloyJS 前端 + Slack API | CabloyJS 后端 |
小程序:微信、支付宝等 | Uni-app + CabloyJS 前端 SDK | CabloyJS 后端 |
后端
:因为残缺的前后端拆散设计,只需开发一套 CabloyJS 后端代码即可前端
:所有可基于 H5 的场景,只需开发一套 CabloyJS 前端代码即可小程序
:提供 CabloyJS 前端 SDK 让 Uni-app 能够轻松对接 CabloyJS 后端代码
CabloyJS 能够开发什么零碎
- 能够开发
多租户 SAAS 业务零碎
- 能够开发前后端拆散的
后盾业务管理系统
,如 OA、CRM、ERP、电商,等等 - 能够开发
JAMStack
架构的CMS 内容管理系统
,反对 SEO 优化,如博客、技术文档、社区、常识店铺,等等 - 既能够先开发
后盾业务管理系统
,再延长开发CMS 内容管理系统
;也能够反过来,先开发CMS 内容管理系统
,再延长开发后盾业务管理系统
- 能够通过
Cordova
开发各类 App 利用,反对 IOS、Android - 能够通过
Electron
开发桌面利用 - 能够开发微信公众号、企业微信、钉钉,等第三方平台的利用,解决
信息孤岛
的问题 - 能够为
Uniapp 小程序
开发后端 API 接口
CabloyJS 开发的正式零碎
网站类型 | 网站链接 |
---|---|
后盾管理系统(PC 布局) | https://admin.cabloy.com |
后盾管理系统(Mobile 布局) | |
博客 | https://zhennann.com |
技术文档(英文) | https://cabloy.com/index.html |
技术文档(中文) | https://cabloy.com/zh-cn/inde… |
社区(英文) | https://community.cabloy.com/… |
社区(中文) | https://community.cabloy.com/… |
课程(英文) | https://course.cabloy.com/ind… |
课程(中文) | https://course.cabloy.com/zh-… |
Cabloy 商店(英文) | https://store.cabloy.com/inde… |
Cabloy 商店(中文) | https://store.cabloy.com/zh-c… |
CabloyJS 的研发历程
CabloyJS 从 2016 年启动开发,次要历经两个研发阶段:
1. 第一阶段:EggBornJS
EggBornJS 关注的外围就是 模块化体系
与模块隔离
,并以此实现一套残缺的全栈开发框架
比方模块 egg-born-front
是框架前端的外围模块,模块 egg-born-backend
是框架后端的外围模块,模块 egg-born
是框架的命令行工具,用于创立我的项目骨架
这也是为什么所有业务模块都是以
egg-born-module-
为命名前缀的起因
2. 第二阶段:CabloyJS
EggBornJS 只是一个根底的全栈开发框架,如果要反对业务的疾速开发,还须要思考许多与业务相干的撑持个性,如:工作流引擎
、 用户治理
、 角色治理
、 权限治理
、 菜单治理
、 参数设置治理
、 表单验证
、 登录机制
,等等。特地是在前后端拆散的场景下,对 权限治理
的要求就晋升到一个更高的程度
CabloyJS 在 EggBornJS 的根底上,提供了一套外围业务模块,从而实现了一系列业务撑持个性,并将这些个性进行有机的组合,造成残缺而灵便的下层生态架构,从而反对具体的业务开发过程
有了 EggBornJS,从此可复用的不仅仅是组件,还有业务模块
有了 CabloyJS,您就能够疾速开发各类业务利用
信念
但凡能够用 JavaScript 来写的利用,最终都会用 JavaScript 来写 | Atwood 定律
置信,Javascript 的深度探索者都会被这句名言激发,共同努力,为 Javascript 生态添砖加瓦,构建更凋敝的利用生态
CabloyJS 正是对这一名言的摸索之作。欢迎您也退出 CabloyJS 的社区生态,一起促成 Javascript 的凋敝与利用
名称的由来
1. EggBorn
这个名称的由来比较简单,因为有了 Egg(后端框架),所以就有了 EggBorn。有一部动画片叫《天书奇谭》,外面的萌主就叫“蛋生”,我很喜爱看(不小心裸露了年龄😅)
2. Cabloy
Cabloy 来自蓝精灵的魔法咒语,拼对了 Cabloy 这个单词就会有神奇的成果。同样,CabloyJS 是无关化学的魔法,基于模块的组合与生化反馈,您将实现您想要的任何货色
License
MIT