前言

CabloyJS框架的研发历程共分两个阶段:EggBornJS和CabloyJS

EggBornJS是CabloyJS框架的第一阶段,关于CabloyJS的完整介绍,请参见:CabloyJS介绍

EggBornJS是什么

EggBornJS是一款原生分布式的Node.js全栈框架

EggBornJS是CabloyJS框架的第一阶段,其核心是实现框架的模块化模块隔离,为CabloyJS实现面向业务的快速开发框架奠定坚实的基础

  • EggBornJS是采用NodeJS进行全栈开发的最佳实践
  • EggBornJS不重复造轮子,而是采用业界最新的开源技术,进行全栈开发的最佳组合
  • EggBornJS前端采用VueJS + Framework7 + Webpack,后端采用KoaJS + EggJS,数据库采用mysql
  • EggBornJS时刻跟踪开源技术的最新成果,并持续优化,使整个框架时刻保持最佳状态。

EggBornJS重点解决什么问题:业务模块化

NodeJS技术的蓬勃发展,为前后端开发带来了更顺畅的体验,显著提升了开发效率。但仍有网友质疑NodeJS能否胜任大型Web应用的开发。大型Web应用的特点是随着业务的增长,需要开发大量的页面组件。面对这种场景,一般有两种解决方案:

1 采用单页面的构建方式,缺点是产生的部署包很大

2 采用页面异步加载方式,缺点是页面过于零散,碎片化严重,需要频繁与后端交互

EggBornJS实现了第三种解决方案:

3 页面组件按业务需求归类,进行模块化,并且实现了模块的异步加载机制,从而弥合了前两种解决方案的缺点,完美满足大型Web应用业务持续增长的需求

EggBornJS的技术特点

  • Bean & AOP:基于原生JS实现的Bean容器和AOP编程
  • 多实例/多域名/多租户:通过多实例机制实现多域名和多租户应用
  • 前后端分离:前后端分离开发,深度解耦
  • 业务模块化:用模块思维规划项目
  • 模块高度内聚:模块包括前端页面组件和后端业务逻辑
  • 加载方式灵活:模块既可异步加载,也可同步加载
  • 参数配置灵活:模块中的前后端可以单独进行参数配置
  • 国际化:模块中的前后端均支持独立的国际化
  • 模块隔离:模块的页面、数据、逻辑、路由、配置等元素均进行了命名空间隔离处理,避免模块之间的变量污染与冲突
  • 超级易用的事务处理:只需在路由记录上配置一个参数,即可完美实现数据库的事务处理
  • 测试驱动开发:可以有效沉淀开发成果,当代码出现变更时也能尽快锁定潜在问题,从而显著提升代码的鲁棒性
  • 渐进式开发:由于模块的高度内聚,可以将业务以模块的形式沉淀,在多个项目中重复使用,既可贡献到npm开源社区,也可部署到公司内部私有npm仓库

有了EggBornJS,从此可复用的不仅仅是组件,还有业务模块

EggBorn名称的由来

这个名称的由来比较简单,因为有了Egg(后端框架),所以就有了EggBorn。有一部动画片叫《天书奇谭》,里面的萌主就叫“蛋生”,我很喜欢看(不小心暴露了年龄😅)