入门起步

如果您想在第一时间把CabloyJS全栈框架用起来,可以先查阅以下教程,对开箱即用的效果和灵活定制的机制有一个初步的认知:

0. 创建第一个CabloyJS项目

1. 开箱即用起步

2. 灵活定制起步

文档受众

咱们做软件开发,就好比是建造一幢幢房屋,一座座桥梁,既可以是北方宫殿的巍峨,也可以有南方庭院的雅致,更可以是横跨群山的峻险与孤悬。那么,不同的语言、不同的框架也都由其内在的秉质吸引着一批粉丝,坚持不懈的耕耘,营造出不同的生态,呈现出不同的开发风格和开发体验。正如Rails之于RubyLavaral之于PHPDjango之于PythonSpring Boot之于Java。那么,又是什么之于Javascript呢?毋庸置疑,Javascript面对着更多的使用场景,前端、后端、移动端、IOT,等等。不同的场景都有出色的解决方案存在。而且,基于不同的使用偏好,又分裂出Javascript和Typescript两个风格体系。那么,基于业务开发而言,就目前的Node生态可以说,Nest之于TypescriptCabloy之于Javascript

正因为面对业务开发,不同的语言、不同的框架,会有不同的解决方案和风格体验。因此,不论您使用CabloyJS或者不使用CabloyJS,都有必要进来看看在坚守原生Javascript(Vanilla JS)的土壤上,可以开出怎样的花朵。因此,不论您是前端开发后端开发全栈开发,或者其他语言的粉丝,或者技术经理产品经理项目经理,都可以从CabloyJS提供的文档和视频中汲取不一样的解题思路和方法,相互交流,相互借鉴,共同进步!

在英语语境中,原生Javascript有一个专属名称:Vanilla JS。而Vanilla有香草🌿之意,看来所言不虚

语言 框架
Ruby Rails
PHP Lavaral
Python Django
Java Spring Boot
Typescript Nest
Javascript Cabloy

CabloyJS是什么

CabloyJS 是一款自带工作流引擎的 Node.js 全栈框架,面向开发者的低代码开发平台。实现了真正意义的“一次开发,到处运行”的跨端跨平台理念。只需一套代码,即可同时实现B端中后台管理系统C端前台应用。只需一套代码,即可同时跨端PCMobile,并且Mobile端是接近原生体验

CabloyJS的框架风格与设计原则

1. 框架风格:简约而不简单

2. 设计原则:既能开箱即用,又能灵活定制

许多网友反馈:对CabloyJS里面的概念很陌生,不知从何下手?

不同的语言和架构理念决定了一款框架的风格。为了做成一款真正好用的全栈业务框架,CabloyJS对真实业务需求背后的概念进行抽象、提炼,既要达到开箱即用的效果,又能灵活定制、二次开发

因此,这也决定了CabloyJS框架的整体风格是:简约而不简单。当您熟悉了这种风格,就会发现:原来真正舒服的开发体验就应该是这样

1. 举一个后端的案例

如果要实现业务数据的增删改查功能,代码可以设计得很简单,甚至不需要查阅文档就可以知道如何来使用

我们可以回想一下,是不是大多数其他的后端MVC框架或者后端API框架所提供的增删改查功能往往止步于此?

那么,我们接下来引入一些真实的业务需求:

  1. 增加草稿副本,当我们修改草稿时,并不影响已经正式提交的数据
  2. 增加历史副本,记录数据的历史版本
  3. 增加审批工作流,业务数据从草稿提交后进行审批,通过后才转入正式副本
  4. 增加cms静态渲染机制:由于CRUD一般是后台管理,我们需要将数据静态输出,供前台系统访问,同时实现网站的SEO优化
  5. 增加目录、标签功能,方便数据的进一步整理和归类
  6. 针对以上所提及的这些功能特性,我们可以继续提出以下几个架构层面的设计问题:
    1. 如何提炼通用的概念

    2. 如何设计开发接口(既要达到开箱即用的效果,又能灵活定制、二次开发

    3. 如何灵活的配置(方便的开启或者禁用某些特性)。正所谓:降维容易,升维难。我们要先有这些功能,然后再根据业务需求来决定是否启用这些功能

    4. 如何适配更多的业务场景(而不是仅适用于某一类业务数据),比如:博客文章、社区帖子、请假单、报销单、采购订单、合同、项目、资产、财务单据,等等,不一而足

  7. 这就注定了业务数据的概念是不简单的,但是CabloyJS却实现了简约的开发接口,既能开箱即用,又能灵活扩展

参见:B站视频:新建业务表单+审批工作流

2. 举一个前端的案例

  1. 引入问题:随着移动终端的普及和升级换代,大量业务场景都需要Mobile端的支持。那么,中后台管理系统如何更优雅的支持移动端呢?

  2. 传统方案:目前市面上大多数中后台管理框架都是采用css媒体查询的方式来兼容PC端和Mobile端

    1. 传统方案的弊端:然而,PC端和Mobile端的界面交互体验不同,页面的布局也必然不同。因此,仅仅依靠css媒体查询,只是让PC端的页面在Mobile端可用,但远远达不到原生Mobile端的效果
  3. 全新方案:CabloyJS提供了独树一帜的pc=mobile+pad跨端自适应布局,只需要一套代码,同时兼容PC端和Mobile端,并且Mobile端达到原生交互体验

    1. 全新方案的优点:此方案同样也贯彻了开箱即用+灵活扩展的设计原则,具备简约而不简单的风格。您所需要做的就是通过查阅文档或者观看视频来理解这套机制,在进行实际的前端页面开发时所需代码量非常精简,远比css媒体查询简洁

参见:B站视频:独树一帜的跨端方案:pc=mobile+pad自适应布局

基础概念

建议您先阅读以下几篇文档,对CabloyJS的基础概念有个初步认知

基础知识

CabloyJS底层基于EggJS、VueJS、Framework7。这些底层框架的文档并不是必须要先看。CabloyJS提供了足够的样例和测试代码,方便我们参照着进行快速开发。建议先把CabloyJS项目运行起来,再逐步按需引入相关知识的学习

当然,如果事先有EggJS和Framework7的知识储备,那么就更容易理解CabloyJS在这二者基础之上做了哪些创新改造

体验

CabloyJS内置丰富的核心模块,对具体业务中常用的大多数功能和特性进行了封装和实现。因此,建议您先创建一个项目,运行起来,预览一遍CabloyJS提供的功能和特性。这样,当您开发自己的系统时,就知道该如何参考现有的范式,以收事半功倍之效

免费视频课程

CabloyJS提供了一套免费视频课程。本套课程由CabloyJS作者健哥亲自讲授,通过现场亲自编码实战,带您融入NodeJS全栈开发的现实场景中,从而可以快速提升开发技能、学完即可快速上手各类业务系统的开发

教程

在CabloyJS框架的基础上进行具体业务模块的二次开发非常快速、便捷。通过这里的教程章节,可以看到开发一个业务模块需要哪些步骤

EggBornJS

通过阅读EggBornJS章节,可以了解EggBornJS为了实现模块化为核心的架构模块化隔离机制,在EggJS的基础上做了哪些特性方面的扩展

CabloyJS

通过阅读CabloyJS章节,可以了解CabloyJS为了提升业务开发的效率和便利,对哪些业务概念进行了抽象和提炼,并提供了哪些核心功能模块

NodeJS工作流引擎

NodeJS工作流引擎是一个业务开发平台最核心的组件,通过阅读该章节,可以了解CabloyJS自带的工作流引擎如何简便、灵活、高效的支撑业务系统的开发

解决方案

在CabloyJS的基础上,针对不同业务场景实现了相应的解决方案,包括:

  1. Cabloy-CMS
  2. Cabloy-社区
  3. Cabloy-微信
  4. Cabloy-企业微信
  5. Cabloy-钉钉
  6. Cabloy-Uniapp

测试模块/套件(test-***)

  • test-party是CabloyJS框架的测试套件,包含大量测试用例Kitchen-sink
  • test-flow是NodeJS工作流引擎的测试模块,包含大量与工作流相关的测试用例
  • test-note用于演示如何使用Markdown富文本编辑器

这些测试模块/套件既便于快速学习CabloyJS方方面面的知识点,又提供了丰富的代码范例,便于快速启动实际的项目开发。强烈建议您关注并持续保持test-***模块/套件的更新,以便及时获取最新的样例代码

核心模块源码

通过查阅CabloyJS提供的核心模块的源码,您会发现CabloyJS框架足够灵活,您可以进行深度的定制替换扩展CabloyJS提供的大量功能和特性

参与贡献

欢迎大家参与贡献,共同完善CabloyJS全栈框架,这也是快速、深入学习 CabloyJS 的有效途径

License

MIT,可免费商用