介绍
全栈团队的成员属于全栈型,每个成员均可以独立开发一个业务模块的前后端代码。那么,这时候我们就可以基于CabloyJS项目模块化体系的特点,进行分工合作
场景
假如我们有一个项目cabloy-demo
,可以将业务所涉及的前端界面和后端逻辑拆分为两个业务模块,分别是demo-modulea
和demo-moduleb
,分别由成员A
和成员B
开发,最后由成员C
部署
成员 | 任务 |
---|---|
成员A | 开发demo-modulea |
成员B | 开发demo-moduleb |
成员C | 部署 |
代码分割
1. 创建项目
-
选项1:由任何成员创建一个项目骨架(项目名称为cabloy-demo),然后分发给其他成员
-
选项2:成员独立创建项目骨架
- 1$ npm init cabloy cabloy-demo
- 参见:快速开始(项目模式)
2. 成员A
在自己的项目中创建业务模块demo-modulea
,并进行代码开发
- 1$ npm run cli :create:module demo-modulea -- --template=module-business --suite=
- 参见:模块化体系与新建模块
3. 成员B
(参考成员A)
成果分享
1. 成员A
在终端执行release
命令,将demo-modulea
编译打包,并将输出成果分享给成员B
和成员C
- 1$ npm run release demo-modulea
- 关于如何分享,以及release命令的说明,请参见:终端命令-团队开发相关
2. 成员B
(参考成员A)
代码调试
1. 常规场景
由于成员之间的业务模块可以进行成果分享,因此,成员可以独立的进行代码调试
2. 兼容场景
由于一个业务模块包含与某项子业务相关的前端组件和后端逻辑,因此往往是高内聚低耦合
的。在其他成员的业务模块还没有准备就绪的时候,本地一般情况也可以进行正常的代码调试。如果模块之间确实存在相互依赖,可以采用模块检测机制进行兼容处理
比如,模块demo-moduleb
依赖模块demo-modulea
。我们可以在模块demo-moduleb
中加入兼容代码,从而确保即使没有模块demo-modulea
,本地代码也可以正常运行
- 前端兼容处理
- 1const exists = await this.$meta.module.tryUse('demo-modulea');
- 2if(!exists){
- 3 // 兼容处理
- 4}
- 后端兼容处理
- 1const exists = ctx.app.meta.modules['demo-modulea'];
- 2if(!exists){
- 3 // 兼容处理
- 4}
项目部署
成员A
和成员B
把各自的业务模块编译打包之后,统一分享给成员C
,成员C
进行常规的部署工作
- 参见:项目部署-构建与运行
评论: