模块化体系的说明

在大型Web业务系统中,不可避免包括大量的业务和功能。CabloyJS采用模块化体系,实际的业务代码开发都是在模块中进行

我们在开发一个业务系统时,首先要规划需要将系统拆分为多少个模块。哪些模块直接采用CabloyJS内置的核心模块,哪些模块来自第三方的社区贡献,剩下的模块则自行开发

模块化体系的意义

  1. 业务解耦:代码结构清晰,业务逻辑充分解耦
  2. 分工协作团队开发:将业务系统拆分成模块的组合,有利于开发任务的分解与分配
  3. 关注点聚焦:一个模块包含一个子业务的前端UI和后端API接口,在开发时,减少沟通内耗,提升开发效率
  4. 减少心智负担:模块的命名空间隔离机制有利于减少开发时的心智负担,当我们在为模块内部的controller、service、config等组件进行变量命名时,不必担心此名称会与其他模块冲突,从而也可以使得变量命名更加精简、自然
  5. 业务逻辑复用:以模块为开发单元,便于沉淀技术资产,便于在不同的系统中重复利用

新建模块

自行开发的模块称为本地模块,位于项目的src/module目录中

可以使用Cli命令创建模块文件骨架

  1. 1# 进入项目所在目录
  2. 2$ cd /path/to/project
  3. 3$ npm run cli :create:module demo-student -- --template=module-business --suite=
名称 说明
moduleName 模块名称,比如demo-student
template 模版名称,比如module-business
suite 套件名称:一个模块可以归属于某个套件,也可以独立存在
  • template:目前提供了三个模版:
名称 说明
module-business 此模版会创建与业务相关的代码,大量简化工作量
module-business-details module-business的基础上增加了与明细业务相关的代码文件
module 此模版仅包含基本的骨架代码文件,一般应用于工具类的模块开发

三驾马车:套件、模块、应用

为了应对大型项目的开发,CabloyJS提供了三驾马车:套件模块应用

  • 套件、模块:在物理层面上对代码进行组织,参见:套件

  • 应用:在逻辑层面上对界面交互进行布局,面向不同业务场景和不同终端用户,提供不同的界面组合,参见:应用

延伸阅读