MBE 分布式开发管理实施指南

版本: v1.0 | 更新时间: 2026-02-02


目录

  1. 架构概览
  2. 环境配置
  3. Git 分支策略
  4. 开发工作流
  5. 代码审查流程
  6. CI/CD 自动化
  7. 团队协作规范
  8. 发布流程
  9. 快速参考

1. 架构概览

1.1 三环境隔离架构

┌─────────────────────────────────────────────────────────────────────────────┐
│                          MBE 分布式开发架构                                  │
├─────────────────────────────────────────────────────────────────────────────┤
│                                                                              │
│  ┌─────────────────────┐                                                    │
│  │    生产环境 (Prod)   │  ← 正式用户访问                                   │
│  │  mbe.hi-maker.com   │                                                    │
│  │  main 分支          │                                                    │
│  │  API: 8000          │                                                    │
│  └──────────┬──────────┘                                                    │
│             │ hotfix only                                                   │
│             │                                                                │
│  ┌──────────▼──────────┐                                                    │
│  │    测试环境 (Test)   │  ← 发布前验证(可选)                              │
│  │  test.hi-maker.com  │                                                    │
│  │  release/* 分支     │                                                    │
│  │  API: 8002          │                                                    │
│  └──────────┬──────────┘                                                    │
│             │ release merge                                                 │
│             │                                                                │
│  ┌──────────▼──────────┐                                                    │
│  │    开发环境 (Dev)    │  ← 团队协作开发                                   │
│  │  dev.hi-maker.com   │                                                    │
│  │  develop 分支       │                                                    │
│  │  API: 8001          │                                                    │
│  └──────────┬──────────┘                                                    │
│             │ feature merge                                                 │
│             │                                                                │
│  ┌──────────▼──────────┐                                                    │
│  │    本地环境 (Local)  │  ← 个人开发调试                                   │
│  │  localhost          │                                                    │
│  │  feature/* 分支     │                                                    │
│  │  直接运行 Python    │                                                    │
│  └─────────────────────┘                                                    │
│                                                                              │
└─────────────────────────────────────────────────────────────────────────────┘

1.2 端口分配

环境 API Admin Education AIGC Lawyer PostgreSQL Redis
生产 8000 3000 3001 3002 3004 5432 6379
开发 8001 3010 3011 3012 3014 5433 6380
测试 8002 3020 3021 3022 3024 5434 6381

2. 环境配置

2.1 初始化 Git 仓库(首次设置)

# 1. 初始化 Git 仓库
cd D:\Mises\mises-behavior-engine
git init

# 2. 添加远程仓库
git remote add origin https://github.com/your-org/mises-behavior-engine.git
# 或使用私有 Gitea
git remote add origin http://localhost:3030/mbe/mises-behavior-engine.git

# 3. 创建主分支
git checkout -b main
git add .
git commit -m "Initial commit: MBE v2.0.0"
git push -u origin main

# 4. 创建开发分支
git checkout -b develop
git push -u origin develop

2.2 配置环境文件

# 确保有三套环境配置
.env.production    # 生产环境
.env.development   # 开发环境
.env.test          # 测试环境(可选)

2.3 启动双环境

cd D:\Mises\mises-behavior-engine

# 同时启动生产和开发环境
.\scripts\deploy_dual_environment.ps1

# 或分别启动
.\scripts\deploy_dual_environment.ps1 -ProductionOnly
.\scripts\deploy_dual_environment.ps1 -DevelopmentOnly

3. Git 分支策略

3.1 分支模型 (Git Flow)

┌─────────────────────────────────────────────────────────────────────────────┐
│                           Git Flow 分支模型                                  │
├─────────────────────────────────────────────────────────────────────────────┤
│                                                                              │
│  main ──────●─────────●─────────────────●─────────────●────────▶           │
│             │         │                 │             │                      │
│             │         │ v2.0.0          │ v2.1.0      │ v2.1.1 (hotfix)     │
│             │         │                 │             │                      │
│  release ───┼─────────┼────────●───●────┼─────────────┼────────▶           │
│             │         │        │   │    │             │                      │
│             │         │   release/v2.1  │             │                      │
│             │         │        │   │    │             │                      │
│  develop ───●─────●───●────●───●───●────●─────●───●───●────────▶           │
│             │     │        │       │          │   │                          │
│             │     │        │       │          │   │                          │
│  feature ───●─────●        ●───────●          ●───●                         │
│           feat/a  feat/b  feat/c  feat/d    feat/e feat/f                   │
│                                                                              │
│  hotfix ─────────────────────────────────────────────●───────▶             │
│                                                    hotfix/v2.1.1             │
│                                                                              │
└─────────────────────────────────────────────────────────────────────────────┘

3.2 分支命名规范

分支类型 命名格式 示例 说明
主分支 main main 生产代码
开发分支 develop develop 集成分支
功能分支 feature/功能名 feature/expert-marketplace 新功能开发
修复分支 fix/问题描述 fix/login-error Bug 修复
发布分支 release/版本号 release/v2.1.0 发布准备
热修复 hotfix/版本号 hotfix/v2.0.1 紧急修复

3.3 Commit 规范 (Conventional Commits)

<type>(<scope>): <subject>

<body>

<footer>

Type 类型:

Type 说明 示例
feat 新功能 feat(expert): Add marketplace search
fix Bug 修复 fix(auth): Fix login validation
docs 文档更新 docs: Update API documentation
style 代码格式 style: Format with Black
refactor 重构 refactor(db): Optimize query
test 测试 test: Add expert unit tests
chore 构建/工具 chore: Update dependencies
perf 性能优化 perf(search): Improve speed

4. 开发工作流

4.1 日常开发流程

# ============ 开发者 A 的工作流程 ============

# 1. 每天开始:同步最新代码
git checkout develop
git pull origin develop

# 2. 创建功能分支
git checkout -b feature/expert-search

# 3. 开发编码
# ... 编写代码 ...

# 4. 本地测试
pytest tests/ -v
python -m pytest tests/unit/ -v

# 5. 提交代码(小步提交)
git add .
git commit -m "feat(expert): Add search by category"

# 6. 继续开发和提交
# ... 更多代码 ...
git commit -m "feat(expert): Add search filters"

# 7. 推送到远程
git push -u origin feature/expert-search

# 8. 创建 Pull Request (PR)
# 在 GitHub/GitLab 上创建 PR: feature/expert-search → develop

# 9. 代码审查通过后合并
# 审查者点击 "Merge"

# 10. 清理本地分支
git checkout develop
git pull origin develop
git branch -d feature/expert-search

4.2 多人协作流程图

┌─────────────────────────────────────────────────────────────────────────────┐
│                         多人协作开发流程                                     │
├─────────────────────────────────────────────────────────────────────────────┤
│                                                                              │
│   开发者 A                  develop 分支                    开发者 B         │
│   ════════                  ════════════                    ════════         │
│                                                                              │
│      │                          │                              │             │
│      │ pull                     │                         pull │             │
│      ◀──────────────────────────│──────────────────────────────▶             │
│      │                          │                              │             │
│      │                          │                              │             │
│   feature/a                     │                          feature/b         │
│      │                          │                              │             │
│      │ commit                   │                       commit │             │
│      │ commit                   │                       commit │             │
│      │ commit                   │                       commit │             │
│      │                          │                              │             │
│      │ push                     │                         push │             │
│      │──────────────────────────│───────────────────────────▶  │             │
│      │                          │                              │             │
│      │ create PR                │                    create PR │             │
│      │──────────────────────────▶                              │             │
│      │                          ◀──────────────────────────────│             │
│      │                          │                              │             │
│      │              code review │ code review                  │             │
│      │                          │                              │             │
│      │                   merge  │  merge                       │             │
│      │                    ●─────│─────●                        │             │
│      │                          │                              │             │
│      │ pull                     │                         pull │             │
│      ◀──────────────────────────│──────────────────────────────▶             │
│      │                          │                              │             │
│                                                                              │
└─────────────────────────────────────────────────────────────────────────────┘

4.3 冲突解决

# 当合并出现冲突时

# 1. 更新本地 develop
git checkout develop
git pull origin develop

# 2. 回到功能分支并合并 develop
git checkout feature/my-feature
git merge develop

# 3. 解决冲突
# 编辑冲突文件,选择正确的代码

# 4. 标记冲突已解决
git add <conflicted-files>
git commit -m "resolve: Merge conflicts with develop"

# 5. 推送解决后的代码
git push origin feature/my-feature

5. 代码审查流程

5.1 审查流程

┌─────────────────────────────────────────────────────────────────────────────┐
│                           代码审查流程                                       │
├─────────────────────────────────────────────────────────────────────────────┤
│                                                                              │
│   1. 开发者创建 PR                                                          │
│      ├── 填写 PR 描述(改动说明、测试方法)                                 │
│      ├── 关联 Issue(如有)                                                 │
│      └── 指定审查者                                                         │
│                │                                                             │
│                ▼                                                             │
│   2. 自动检查 (CI)                                                          │
│      ├── 代码格式 (Black, isort)                                           │
│      ├── 代码规范 (flake8)                                                 │
│      ├── 类型检查 (mypy)                                                   │
│      ├── 单元测试 (pytest)                                                 │
│      └── 覆盖率检查 (>70%)                                                 │
│                │                                                             │
│                ▼                                                             │
│   3. 人工审查                                                               │
│      ├── 功能正确性                                                         │
│      ├── 代码质量                                                           │
│      ├── 性能考虑                                                           │
│      ├── 安全性                                                             │
│      └── 可维护性                                                           │
│                │                                                             │
│          ┌─────┴─────┐                                                       │
│          ▼           ▼                                                       │
│   [需要修改]    [批准通过]                                                   │
│      │               │                                                       │
│      │               ▼                                                       │
│   修改后重新   4. 合并到 develop                                            │
│   提交审查                                                                   │
│                                                                              │
└─────────────────────────────────────────────────────────────────────────────┘

5.2 审查要求

变更类型 最少审查人数 审查者要求
普通功能 1 人 团队成员
核心功能 2 人 含 Tech Lead
安全相关 2 人 含安全负责人
架构变更 全员 团队讨论

5.3 PR 模板

## 变更说明
<!-- 简要描述这个 PR 做了什么 -->

## 变更类型
- [ ] 新功能 (feat)
- [ ] Bug 修复 (fix)
- [ ] 文档更新 (docs)
- [ ] 重构 (refactor)
- [ ] 测试 (test)

## 测试方法
<!-- 描述如何测试这些变更 -->

## 相关 Issue
<!-- 关联的 Issue 编号,如 #123 -->

## 检查清单
- [ ] 代码已自测
- [ ] 添加了必要的测试
- [ ] 更新了相关文档
- [ ] CI 检查通过

6. CI/CD 自动化

6.1 GitHub Actions 配置

位置: .github/workflows/test.yml

name: MBE CI/CD

on:
  push:
    branches: [main, develop, 'feature/*']
  pull_request:
    branches: [main, develop]

jobs:
  # 代码检查
  lint:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Set up Python
        uses: actions/setup-python@v5
        with:
          python-version: '3.11'
      - name: Install dependencies
        run: pip install black isort flake8 mypy
      - name: Check formatting
        run: |
          black --check src/
          isort --check-only src/
          flake8 src/

  # 单元测试
  test:
    runs-on: ubuntu-latest
    services:
      postgres:
        image: pgvector/pgvector:pg16
        env:
          POSTGRES_PASSWORD: test
        ports:
          - 5432:5432
      redis:
        image: redis:alpine
        ports:
          - 6379:6379
    steps:
      - uses: actions/checkout@v4
      - name: Run tests
        run: |
          pip install -r requirements.txt
          pytest tests/ -v --cov=src --cov-report=xml
      - name: Upload coverage
        uses: codecov/codecov-action@v3

  # 部署到开发环境(仅 develop 分支)
  deploy-dev:
    needs: [lint, test]
    if: github.ref == 'refs/heads/develop'
    runs-on: ubuntu-latest
    steps:
      - name: Deploy to development
        run: |
          # SSH 到服务器执行部署
          ssh user@dev-server 'cd /app && ./scripts/deploy_dev.sh'

  # 部署到生产环境(仅 main 分支)
  deploy-prod:
    needs: [lint, test]
    if: github.ref == 'refs/heads/main'
    runs-on: ubuntu-latest
    steps:
      - name: Deploy to production
        run: |
          ssh user@prod-server 'cd /app && ./scripts/deploy_prod.sh'

6.2 本地 CI 检查

# 提交前本地检查
cd D:\Mises\mises-behavior-engine

# 1. 代码格式化
black src/
isort src/

# 2. 代码规范检查
flake8 src/

# 3. 运行测试
pytest tests/unit/ -v

# 4. 覆盖率检查
pytest tests/ --cov=src --cov-report=html

7. 团队协作规范

7.1 角色分工

┌─────────────────────────────────────────────────────────────────────────────┐
│                          团队角色分工                                        │
├─────────────────────────────────────────────────────────────────────────────┤
│                                                                              │
│  Tech Lead (1人)                                                            │
│  ├── 技术决策                                                               │
│  ├── 架构设计                                                               │
│  ├── 代码审查(最终)                                                       │
│  └── 发布管理                                                               │
│                                                                              │
│  后端开发 (2-3人)                                                           │
│  ├── 开发者 A: 核心 API + 专家市场                                         │
│  ├── 开发者 B: 应用市场 + 用户系统                                         │
│  └── 开发者 C: 知识库 + AI 模型                                            │
│                                                                              │
│  前端开发 (1-2人)                                                           │
│  ├── 开发者 D: Admin UI + 商城界面                                         │
│  └── 开发者 E: Education 等应用前端                                        │
│                                                                              │
│  测试/运维 (1人)                                                            │
│  ├── 自动化测试                                                             │
│  ├── CI/CD 维护                                                             │
│  └── 部署运维                                                               │
│                                                                              │
└─────────────────────────────────────────────────────────────────────────────┘

7.2 Sprint 节奏(2 周)

时间 活动 参与者 时长
周一 10:00 Sprint 规划 全员 2h
每日 10:00 站会 全员 15min
周三 14:00 技术分享(可选) 全员 1h
周五 15:00 Sprint 回顾 全员 1.5h

7.3 沟通规范

即时沟通: 企业微信/Slack/钉钉
├── #general      - 一般讨论
├── #dev          - 开发相关
├── #alerts       - 系统告警
└── #random       - 闲聊

文档协作: Notion/飞书/语雀
├── 产品需求文档
├── 技术设计文档
├── 会议纪要
└── 知识库

代码协作: GitHub/GitLab/Gitea
├── 代码仓库
├── Issue 跟踪
├── PR 审查
└── CI/CD

8. 发布流程

8.1 发布流程图

┌─────────────────────────────────────────────────────────────────────────────┐
│                           版本发布流程                                       │
├─────────────────────────────────────────────────────────────────────────────┤
│                                                                              │
│   Step 1: 创建发布分支                                                      │
│   ════════════════════                                                       │
│   git checkout develop                                                       │
│   git checkout -b release/v2.1.0                                            │
│                                                                              │
│   Step 2: 发布准备                                                          │
│   ════════════════                                                           │
│   - 更新版本号                                                              │
│   - 更新 CHANGELOG.md                                                       │
│   - 完善文档                                                                │
│   - 只允许 bugfix                                                           │
│                                                                              │
│   Step 3: 测试验证                                                          │
│   ════════════════                                                           │
│   - 部署到测试环境                                                          │
│   - 执行测试用例                                                            │
│   - 修复发现的问题                                                          │
│                                                                              │
│   Step 4: 合并发布                                                          │
│   ════════════════                                                           │
│   git checkout main                                                          │
│   git merge release/v2.1.0                                                   │
│   git tag -a v2.1.0 -m "Release v2.1.0"                                     │
│   git push origin main --tags                                                │
│                                                                              │
│   Step 5: 同步 develop                                                      │
│   ═══════════════════                                                        │
│   git checkout develop                                                       │
│   git merge release/v2.1.0                                                   │
│   git push origin develop                                                    │
│                                                                              │
│   Step 6: 部署生产                                                          │
│   ════════════════                                                           │
│   .\scripts\deploy_complete_production.ps1                                  │
│                                                                              │
│   Step 7: 清理分支                                                          │
│   ════════════════                                                           │
│   git branch -d release/v2.1.0                                              │
│                                                                              │
└─────────────────────────────────────────────────────────────────────────────┘

8.2 版本号规范 (语义化版本)

v主版本.次版本.修订版本

示例:
- v2.0.0  - 主版本(重大更新、不兼容变更)
- v2.1.0  - 次版本(新功能、向下兼容)
- v2.1.1  - 修订版(Bug 修复)
- v2.1.0-dev.1  - 开发版
- v2.1.0-rc.1   - 候选版

8.3 Hotfix 流程

# 紧急修复生产问题

# 1. 从 main 创建 hotfix 分支
git checkout main
git checkout -b hotfix/v2.0.1

# 2. 修复问题
# ... 修复代码 ...
git commit -m "fix: Critical security vulnerability"

# 3. 合并到 main
git checkout main
git merge hotfix/v2.0.1
git tag -a v2.0.1 -m "Hotfix v2.0.1"
git push origin main --tags

# 4. 同步到 develop
git checkout develop
git merge hotfix/v2.0.1
git push origin develop

# 5. 部署生产
.\scripts\deploy_complete_production.ps1

# 6. 清理分支
git branch -d hotfix/v2.0.1

9. 快速参考

9.1 常用命令速查

# ===== Git 基础 =====
git status                          # 查看状态
git log --oneline -10               # 查看最近10条提交
git diff                            # 查看改动
git stash                           # 暂存改动
git stash pop                       # 恢复暂存

# ===== 分支操作 =====
git branch -a                       # 查看所有分支
git checkout -b feature/xxx         # 创建并切换分支
git branch -d feature/xxx           # 删除分支
git push origin --delete feature/xxx # 删除远程分支

# ===== 同步操作 =====
git fetch origin                    # 获取远程更新
git pull origin develop             # 拉取并合并
git push origin feature/xxx         # 推送分支

# ===== 合并操作 =====
git merge develop                   # 合并 develop 到当前分支
git rebase develop                  # 变基到 develop
git cherry-pick <commit>            # 挑选提交

# ===== 标签操作 =====
git tag                             # 列出标签
git tag -a v2.1.0 -m "Release"      # 创建标签
git push origin --tags              # 推送标签

9.2 部署命令速查

# ===== 双环境部署 =====
.\scripts\deploy_dual_environment.ps1           # 同时部署
.\scripts\deploy_dual_environment.ps1 -ProductionOnly   # 仅生产
.\scripts\deploy_dual_environment.ps1 -DevelopmentOnly  # 仅开发

# ===== 查看状态 =====
docker ps                           # 查看容器
docker logs -f mbe-api              # 查看日志
docker stats                        # 查看资源

# ===== 停止服务 =====
docker compose -f docker-compose.complete.yml --env-file .env.production --profile production down
docker compose -f docker-compose.dev.complete.yml --env-file .env.development down

9.3 测试命令速查

# ===== 本地测试 =====
pytest tests/unit/ -v               # 单元测试
pytest tests/integration/ -v        # 集成测试
pytest tests/ --cov=src             # 覆盖率测试

# ===== 代码检查 =====
black src/                          # 格式化
isort src/                          # 排序导入
flake8 src/                         # 规范检查

相关文档