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

参见:如何学习使用CabloyJS:简约而不简单



新建项目后从哪里查看CabloyJS的核心源码?

这里要提到创建项目的两种方式:

1. 通用方式

  • 适用场景:如果是开发正式的业务系统,建议用通用方式

  • 参考链接:快速开始

  • 目录结构:CabloyJS核心模块和源码在node_modules

  • 优点:

    • 项目源码目录仅包含自定义的业务模块,目录结构清晰
    • CabloyJS核心模块的前端和后端代码都进行了编译打包。因此,执行npm脚本速度有显著提升,比如:启动前端开发服务、执行项目编译打包、启动后端服务,等等
  • 缺点:

    • 查阅CabloyJS核心模块的源码时,需要使用编译器的快捷键配合,提高查找文件的效率

2. Lerna源码方式

由于CabloyJS的所有核心模块源码都采用lerna进行统一管理,因此,也可以直接克隆CabloyJS的源码仓库

  • 适用场景:如果是学习和研究CabloyJS,或者贡献代码,建议用Lerna源码方式

  • 参考链接:快速开始(源码模式)

  • 目录结构:CabloyJS核心模块和源码在项目根目录的src/module-system

  • 优点:

    • 便于随时查阅CabloyJS核心模块的源码
  • 缺点:

    • 执行npm脚本速度比通用方式慢,比如:启动前端开发服务、执行项目编译打包、启动后端服务,等等


可否直接修改CabloyJS核心模块的源码,达到二次开发的目的?

CabloyJS采用对扩展开放,对修改关闭的开闭原则。针对业务开发的场景,CabloyJS提供了相应的功能和特性,达到开箱即用的效果,同时也提供了大量的扩展机制,方便二次开发和定制

扩展说明(1):模版框架的区别

  • 模版:有许多框架,其本质是代码模版。当开发具体项目时,直接在代码模版中修改代码。这样,虽然修改起来很直接,但是不利于模版的持续升级和优化;也不利于业务代码的持续沉淀和迁移(至其他项目)

  • 框架:一个真正成熟的框架,对扩展开放,对修改关闭的开闭原则是首要考虑的架构原则。既方便框架的持续升级和优化,也方便业务代码的持续沉淀和迁移(至其他项目)

扩展说明(2):Module Monkey

为了实现对扩展开放,对修改关闭的开闭原则,CabloyJS从不同的维度思考可以扩展的方式。对于不同的功能,CabloyJS针对功能的特点提供了相应的扩展机制。除此之外,还提供了Module Monkey机制,可以深度替换所有模块的前端和后端组件,实现高度的定制开发(二次开发)。Module Monkey机制一般不轻易使用,是最后的大招。请参见:Module Monkey