## 介绍 混合团队,既有分别擅长前端/后端的成员,也有全栈成员。那么,这时候我们就推荐以`前后端分离模式`为主线,再以`业务模块为单位`做进一步拆分的合作策略 ## 场景 假如我们有一个项目`cabloy-demo`,可以将业务所涉及的前端界面和后端逻辑拆分为三个业务模块,分别是`demo-modulea`、`demo-moduleb`和`demo-modulec`,分别由`成员A`开发前两个模块的前端,由`成员B`开发前两个模块的后端,由`成员C`全栈开发模块`demo-modulec`,最后由`成员D`部署 | 成员 | 任务 | |----|----| | 成员A | 开发前两个模块的前端 | | 成员B | 开发前两个模块的后端 | | 成员C | 全栈开发模块`demo-modulec` | | 成员D | 部署 | ## 基本思路 1. 以`前后端分离模式`为主线 2. 以`业务模块为单位`做进一步拆分 因此,以下环节的探讨将围绕`成员C`进行,其他成员的合作机制,请参考:[前后端分离团队](https://cabloy.com/zh-cn/articles/team-front-backend.html) ## ==代码分割== ### 1\. 创建模块 `成员C`创建业务模块`demo-modulec` ``` bash $ npm run cli :create:module demo-modulec -- --template=module-business --suite= ``` * 参见:[模块化体系与新建模块](https://cabloy.com/zh-cn/articles/module-create.html) ## ==成果分享== ### 1\. 成员C与其他成员 由于`成员C`是全栈,而其他成员是前后端分离,因此,`成员C`需要把模块`demo-modulec`的前后端代码单独编译打包,然后将输出成果分享给相应的成员 ``` bash # 模块前端 $ npm run release:front demo-modulec # 模块后端 $ npm run release:backend demo-modulec ``` * 关于如何分享,以及release命令的说明,请参见:[终端命令-团队开发相关](https://cabloy.com/zh-cn/articles/terminal-team.html) ## ==代码调试== ### 1\. 成员C * 选项1:一般而言,一个模块作为全栈开发,往往具有`高内聚低耦合`的特点,可以在本地独立进行开发与调试 * 当遇到与其他模块进行耦合的情况,可以采用模块检测机制进行兼容处理,参见:[全栈团队](https://cabloy.com/zh-cn/articles/team-full-stack.html) * 选项2:可以参考[前后端分离模式](https://cabloy.com/zh-cn/articles/team-front-backend.html),访问其他成员主机提供的`前端网页`和`后端服务`,进行项目联调 ## ==项目部署== `成员A`、`成员B`和`成员C`把各自的业务模块编译打包之后,分别分享给`成员D`,`成员D`进行常规的部署工作 * 参见:[项目部署-构建与运行](https://cabloy.com/zh-cn/articles/build-and-run.html)