Zova is a open-source vue3 framework with ioc container. With the support of ioc container, defining reactive states no longer needs ref/reactive
, nor ref.value
Zova is an independent front-end framework hatched in the process of developing Cabloy5. It uses TypeScript, using universal design, and can be used with any UI library
Any application that can be written in Javascript, will eventually be written in Javascript | Jeff Atwood (2007)
At present, most frameworks related to NodeJS basically use NodeJS as the tool layer, aggregation layer, middle layer, and agent layer, and rarely make deep efforts at the business domains. They think that the business domains are the fields of JAVA, and NodeJS is not suitable. This trend of thought is obviously contrary to Atwood's law
If you want to experience different NodeJS full stack development experiences, you must try CabloyJS full stack open source framework with workflow engine. In order to improve the development efficiency and experience at the business domains, CabloyJS provides a large number of practical tools and components at the frontend and backend
In NodeJS development, the following pain points exist (as of November 2022):
With the popularization and upgrading of mobile devices, a large number of business scenarios need mobile support. For example, managers needs to view statistical data and review business documents through mobile phones; the operation and maintenance personnel can remotely view the server status through their mobile phones and make adjustments and optimizations
At present, most of the admin management frameworks on the market are compatible with PC and Mobile by using CSS media query
. However, the UI interaction experiences of PC and Mobile are different, and the page layouts are different either. Therefore, only relying on CSS media query
can only make PC pages available on the Mobile, but it is far from achieving the effect of the native Mobile
For CRUD
features, most programming language development frameworks can be easily implemented, which should not be the core advantage of NodeJS in developing business systems. To enable NodeJS to develop in the business domains, the workflow engine is a core component that cannot be bypassed
Most business forms are not just the simple combination of some fields and crud features. Different businesses have their own unique business demands, often requiring customization of the frontend interface and backend logic. As Drag-and-drop low-code platform, there are not enough tools for business personnel to conduct in-depth customization, nor enough mechanisms for R&D personnel to conduct in-depth development
Based on the above analysis, CabloyJS has many highlights, such as:
CabloyJS provides a lot of features that shine in front of you. Here are only three examples:
pc = mobile + pad
CabloyJS provides a unique adaptive layout of pc=mobile+pad
, so that only one set of codes is needed to adapt to PC and mobile at the same time, and the mobile is close to the native interactive experience
By defining JSON Schema at one place, you can support both the automatic rendering of forms at frontend and the data validation at backend, which can be used out-of-the-box and customized flexibly
CabloyJS makes full use of the flexibility of JS language and the convenience of JSON format, and the NodeJS workflow engine provided is much simpler and easier to use than Activiti
by JAVA
CabloyJS has developed many distinctive architecture designs. Here are only three examples:
In order to meet the demands of large-scale business system development, CabloyJS adopts the modular concept to plan the system architecture, and organizes the frontend components and backend logic related to business functions into a business module, which is conducive to the cohesion and reuse of business functions and the division of teams based on business
In addition, the page, data, logic, routing, configuration and other elements inside the business module are isolated by namespace, so as to avoid variable pollution and conflict between modules. In other words, when we name a resource in our own business module, we do not have to worry about whether there are resources with the same name in other business modules, thus reducing the mental burden
The positioning of EggJS is the framework of the framework. CabloyJS backend uses a custom loader mechanism to expand a set of new features that adapt to business scenarios based on EggJS
For example, the original Worker + Agent
process model of EggJS is very convenient for a single machine. However, when it comes to multi machine clusters, especially Docker based cluster deployment, Agent
process lose its usefulness. More importantly, if the development is based on the Agent
process at the beginning, it is difficult to smoothly transition to the distributed scene later. Therefore, the backend of CabloyJS uses Redis
. It starts from the bottom of the framework to design a native distributed architecture, and has derived a series of distributed development components, such as Broadcast
, Queue
, Schedule
, Startup
, which facilitates distributed development from the beginning. Therefore, after the system is scaled up, cluster expansion can be easily done
Through the architecture design of frontend & backend separation, only one set of codes is needed to support the cross-platform development, including backend management system and frontend applications
Platform | Frontend | Backend |
---|---|---|
PC: Web | CabloyJS Frontend | CabloyJS Backend |
PC: Exe | CabloyJS Frontend + Electron | CabloyJS Backend |
Mobile: IOS | CabloyJS Frontend + Cordova | CabloyJS Backend |
Mobile: Android | CabloyJS Frontend + Cordova | CabloyJS Backend |
Slack | CabloyJS Frontend + Slack API | CabloyJS Backend |
CabloyJS Frontend + Wechat API | CabloyJS Backend | |
Wechat Enterprise | CabloyJS Frontend + Wechat API | CabloyJS Backend |
DingTalk | CabloyJS Frontend + DingTalk API | CabloyJS Backend |
Backend: Because of the complete frontend and backend separation
, only one set of CabloyJS backend code should be developed
Frontend: All scenarios that can be based on H5 need only develop one set of CabloyJS frontend code
Multi-tenant SAAS
business system can be developed
Backend business management system can be developed, such as OA, CRM, ERP, e-commerce, etc.
CMS
content management system with JAMStack
architecture can be developed to support SEO optimization, such as blogs, technical documents, communities, knowledge stores, etc.
You can first develop the backend business management system, and then extend the development of CMS
content management system; Alternatively, the CMS
content management system can be developed first, and then the backend business management system can be extended
Various App applications can be developed through Cordova
to support IOS and Android
You can develop desktop applications through Electron
The development of CabloyJS started in 2016. It has gone through two stages:
EggBornJS implements a full-stack development framework with business modules as its core
For example, the module egg-born-front
is the core module of the frontend of the framework, while the module egg-born-backend
is the core module of the backend of the framework, and the module egg-born
is the command-line tool of the framework for creating the project skeleton
This is why all business modules are prefixed with egg-born-module-
EggBornJS is only a basic full-stack development framework. Considering business development, many business-related supporting features need to be provided, such as User Management
, Role Management
, Permission Management
, Menu Management
, Settings Management
, Form Validation
, Login Mechanism
, and so on. Especially in the case of frontend and backend separation
, the requirement of permission management is raised to a higher level
On the basis of EggBornJS, CabloyJS provided a set of core business modules, so as to realize a series of supporting features, which are organically combined to form a complete and flexible upper ecological architecture, thus supporting the specific business development process
With EggBornJS, not only the components can be reused, but also the business modules do from now
With CabloyJS, you can quickly develop all kinds of business applications
Any application that can be written in Javascript, will eventually be written in Javascript | Jeff Atwood (2007)
It is believed that the deep explorers of Javascript will be inspired by Atwood’s law and work together to build a more prosperous application ecosystem for Javascript
CabloyJS is just an exploration of Atwood’s law. Instead of repeating wheels, CabloyJS uses the latest open source technology in the industry to optimize full-stack development
Welcome to join the community ecology of CabloyJS to promote the prosperity and application of Javascript
The origin of this name is relatively simple, because there is Egg (backend framework), so there is EggBorn. There is an animated film called “Tianshu Qitan”. Its originator is called “DanSheng”. I like to watch it very much (inadvertently exposed the age😅)
Cabloy comes from the magic spell of the Smurfs. If you spell the word Cabloy correctly, it will have a magical effect. Likewise, CabloyJS is a magic about chemistry. Based on the combination and biochemical reactions of business modules, you will achieve whatever you want
MIT, Free commercial use