# 风七六项目开发规范 &amp; Git工作流管理制度（正式版）

**文档版本**：v1.2.1
**生效日期**：2026-05-27
**制定部门**：技术团队
**强制级别**：🔴 必须遵守

---

## 一、项目背景与目标

目标是对标主流本地生活平台，打造覆盖用户端、商家端、骑手端、平台管理端的一体化服务生态。

本规范旨在统一团队开发标准，确保项目在**Podman容器化、MariaDB数据库、阿里云私有镜像仓库**
的技术栈下，以大厂级工程化标准进行开发、部署与运维，保障系统长期稳定、易扩展、易维护，拒绝临时性方案。

---

## 二、项目核心约束与基础信息

### 2.1 技术栈约束

- **容器引擎**：统一使用 **Podman**，所有服务均通过Podman容器化部署，不使用Docker或其他容器引擎
- **数据库**：核心业务数据库统一使用 **MariaDB 10.11**，字符集强制使用 `utf8mb4`，确保全Unicode支持
- **中间件**：
  - 注册/配置中心：Nacos 2.4.3
  - 缓存：Redis 7.2.4
  - 链路追踪：SkyWalking 9.7.0
  - 反向代理：Nginx 1.25.5

### 2.2 版本管理规范

- 项目基线版本已完成 `v1.1.0`，后续所有迭代版本号均从 `v1.1.0` 开始递增（如 `v1.1.1`、`v1.2.0`），禁止使用非标准版本号
- 镜像标签必须与服务版本号一致，格式为：`localhost:5000/fzx/{service-name}:{version}`

### 2.3 域名与环境规划

| 域名                  | 用途       | 环境                    |
|---------------------|----------|-----------------------|
| `fengzhongxing.cn`  | 公司官方网站   | 生产级正式域名，开发阶段随业务域名共同调试 |
| `fengzhongxing.com` | 项目正式业务域名 | 主业务入口，含各端服务网关         |
| `fengqiliu.cn`      | 项目备用域名   | 业务灾备、故障切换场景使用         |

- 开发/测试阶段，所有域名均指向阿里云服务器 `8.140.221.49`，与业务域名共同进行联调与测试

### 2.4 部署架构约束

- **私有镜像仓库**：部署于阿里云服务器 `8.140.221.49`，所有微服务镜像必须统一推送至该仓库，再通过仓库进行容器部署
- **网络隔离**：所有容器必须加入各环境专用网络 `fzx-aliyun-dev-network`（当前为阿里云开发环境），禁止使用默认网络
- **资源限制**：所有容器必须配置 `--memory` 和 `--cpus` 限制，防止资源耗尽，配置需与服务器资源配额匹配

---

## 三、开发与调试规范

### 3.1 问题处理原则

所有测试、调试、修改修复过程中，必须遵循以下原则：

- **直面问题根源**：拒绝使用临时性、hack式方案，优先采用大厂/行业标准的解决方案
- **优先保证长期稳定**：方案需同时满足当前业务需求与未来扩展能力，确保系统可长期稳定运行、易于运维
- **问题闭环**：所有问题必须记录、分析、修复并验证，形成完整的问题处理记录，避免重复踩坑

### 3.2 环境变量与敏感信息管理

- 所有配置参数（如Nacos地址、数据库连接、Redis密码）必须通过环境变量或配置中心注入，禁止硬编码在代码中
- 敏感信息（如数据库密码、JWT密钥）必须通过Podman `secrets` 目录挂载读取，禁止直接通过 `-e` 参数明文传入

### 3.3 日志与监控规范

- 所有服务必须配置日志输出，日志级别按环境区分（开发环境INFO，生产环境WARN）
- 必须接入SkyWalking链路追踪，确保全链路请求可观测，便于线上问题排查

---

## 四、部署与运维规范

### 4.1 镜像构建与推送流程

1. 本地构建镜像，标签必须遵循 `localhost:5000/fzx/{service-name}:{version}` 格式
2. 镜像必须推送到阿里云私有镜像仓库 `8.140.221.49:5000`，再从仓库拉取进行部署
3. 镜像必须定期清理，避免占用过多服务器存储资源

### 4.2 镜像版本管控规范

| 环境   | Tag格式                     | 示例                            |
|------|---------------------------|-------------------------------|
| 开发   | `dev-<版本>-<日期>-<commit>`  | `dev-1.0.0-20260614-a1b2c3d`  |
| 测试   | `test-<版本>-<日期>-<commit>` | `test-1.0.0-20260614-a1b2c3d` |
| 灰度预发 | `pre-<版本>-<日期>-<commit>`  | `pre-1.0.0-20260614-a1b2c3d`  |
| 生产   | `<版本>`                    | `1.0.0`                       |

### 4.3 容器部署规范

- 所有容器必须配置 `--restart=always`，确保服务意外退出后能自动重启
- 端口映射需遵循统一规则，内部端口与外部端口保持一致，避免混乱
- 数据目录必须通过 `-v` 挂载到宿主机，确保容器重启后数据不丢失
- 所有容器必须配置 `--memory` 和 `--cpus` 限制，防止资源耗尽
- 灰度预发环境资源限制为开发环境的50%（CPU: 2核，内存: 4GB）

### 4.4 CI/CD 流程规范

#### CI流程

```
代码提交 → 代码检查（SonarQube）→ 单元测试 → 构建 → 镜像构建 → 镜像扫描（Trivy）
```

#### CD流程

```
镜像推送 → 部署到测试环境 → 自动化测试 → 人工验证 → 部署到生产环境（滚动发布）
```

#### CI/CD质量门禁

- 代码覆盖率 ≥ 80%
- 代码检查无严重/阻断级问题
- 单元测试通过率 100%
- 镜像扫描无高危漏洞

#### CI/CD效率优化

- Maven依赖缓存：基于pom.xml哈希值缓存本地仓库
- Docker镜像分层缓存：使用`--cache-from`参数复用镜像层
- 流水线并行化：单元测试与代码质量检查并行执行

### 4.5 部署回滚能力

- 发布失败后10分钟内必须回滚
- 部署前备份当前运行版本
- 部署失败自动回滚到上一版本
- 回滚后需记录原因并复盘

### 4.6 运维操作规范

- 所有部署、重启、更新操作必须通过脚本执行，禁止直接在服务器上手动修改容器配置
- 服务器操作需遵循权限最小化原则，非root用户禁止执行敏感操作
- 定期备份MariaDB数据与Nacos配置，确保数据安全
- 环境切换必须通过Jenkins流水线执行，禁止手动切换
- 操作日志自动记录，便于问题追溯

### 4.7 环境切换规范

#### 环境分类

| 环境   | 用途   | 资源限制             |
|------|------|------------------|
| dev  | 开发环境 | 无限制              |
| test | 测试环境 | 无限制              |
| pre  | 灰度预发 | CPU: 2核, 内存: 4GB |

#### 切换流程

1. 停止当前运行的容器
2. 检查端口占用并释放
3. 启动目标环境容器
4. 设置资源限制（仅pre环境）
5. 记录切换日志

#### 切换命令

```bash
/root/fzx-dev/scripts/switch-environment.sh <dev/test/pre>
```

---

## 五、关联文档

| 文档                      | 职责定位                 | 路径                                  |
|-------------------------|----------------------|-------------------------------------|
| `project_rules.md`      | 技术栈、质量安全、部署运维、后端强制规范 | `.trae/rules/project_rules.md`      |
| `git-commit-message.md` | Git提交信息规范（快速参考）      | `.trae/rules/git-commit-message.md` |
| 《阿里云部署指南》               | 阿里云服务器部署操作步骤         | `docs/阿里云开发环境部署指南.md`               |
| 《数据库设计文档》               | 数据库表结构设计规范           | `docs/04-数据库设计文档.md`                |

&gt; **注意**：后端开发必须同时遵守 `project_rules.md` 中的「后端开发强制规范」章节，包括数据库字符集、JDBC连接串、依赖注入等强制性规则。

---

## 六、基线管理规则（强制）

### 6.1 基线定义

**clean-base** 为项目**唯一官方纯净稳定基线**，是所有功能开发、bug修复、环境部署的基础版本。

#### 基线当前状态

- **基线标签**：`v1.1.0-clean-base`
- **验证状态**：✅ 编译成功 ✅ 无报错 ✅ 无冲突 ✅ 前后端可运行

#### 基线要求（永远保持）

- ✅ 无编译错误
- ✅ 无未使用代码、无冗余依赖
- ✅ 无敏感配置、无本地调试代码
- ✅ 数据库、网关、服务注册发现配置统一规范
- ✅ 可直接构建、启动、部署

### 6.2 基线禁止行为（严格禁止）

| 禁止行为                       | 后果     |
|----------------------------|--------|
| ❌ 直接在 clean-base 上开发业务功能   | 污染基线   |
| ❌ 直接向 clean-base 提交代码      | 破坏稳定性  |
| ❌ 向 clean-base 提交未完成功能     | 风险不可控  |
| ❌ 向 clean-base 提交临时文件、测试文件 | 基线臃肿   |
| ❌ 强制推送他人修改过的基线             | 代码丢失风险 |
| ❌ 在基线中混合业务功能与架构修复          | 职责不清   |

### 6.3 基线更新流程（唯一合法方式）

```
1. 从 clean-base 拉取修复分支
   ↓
2. 在分支上完成架构修复、配置统一、依赖清理
   ↓
3. 本地构建验证（mvn compile）
   ↓
4. 确认无问题后，合并回 clean-base
   ↓
5. 打新版本标签（如 v1.2.0-clean-base）
   ↓
6. 同步到 develop 分支
   ↓
7. 通知所有开发人员同步最新基线
```

#### 基线更新前提条件

- ✅ 本地编译 100% 通过
- ✅ 本地全端测试通过
- ✅ 阿里云开发环境测试通过
- ✅ 代码审核通过

---

## 七、分支管理规则（强制）

### 7.1 分支结构

| 分支名          | 用途     | 保护级别    |
|--------------|--------|---------|
| `main`       | 生产环境分支 | 🔴 最高保护 |
| `clean-base` | 纯净基线分支 | 🔴 最高保护 |
| `develop`    | 开发环境分支 | 🟡 中等保护 |
| `feature/*`  | 功能开发分支 | 🟢 常规   |
| `hotfix/*`   | 紧急修复分支 | 🟢 常规   |
| `release/*`  | 发布分支   | 🟡 中等保护 |

### 7.2 当前固定开发分支

**feature/security-enhance** - 当前日常开发全部在此分支进行

### 7.3 标准分支流转流程（强制）

```
develop (开发分支)
    ↓ git checkout -b feature/xxx
feature/xxx (功能开发)
    ↓ 本地开发 + 本地测试
    ↓ 部署阿里云开发环境测试
    ↓ 确认无问题
    ↓ git checkout develop
    ↓ git merge feature/xxx
develop (合并后)
    ↓ 发布前创建 release 分支
release/vx.x.x (发布分支)
    ↓ 测试通过
    ↓ git checkout main
    ↓ git merge release/vx.x.x
main (生产环境)
```

### 7.4 分支命名规范

| 分支类型 | 格式               | 示例                                              |
|------|------------------|-------------------------------------------------|
| 功能分支 | `feature/{功能描述}` | `feature/user-login`、`feature/security-enhance` |
| 修复分支 | `hotfix/{问题描述}`  | `hotfix/order-payment-error`                    |
| 发布分支 | `release/{版本号}`  | `release/v1.1.0`                                |

---

## 八、修复与部署标准流程（固定不变）

### 8.1 核心原则

1. **本地优先原则**：所有问题、优化、新功能必须先在本地开发环境完成
2. **测试前置原则**：本地自测通过后，再部署到阿里云开发环境
3. **基线纯净原则**：只有本地+云端都测试通过，才允许合并回 clean-base
4. **禁止直改原则**：绝不直接在阿里云服务器修改代码、直接线上改配置

### 8.2 完整开发部署流程（按顺序执行）

| 步骤     | 操作               | 验证标准                                                    |
|--------|------------------|---------------------------------------------------------|
| **1**  | 切换到 develop 分支   | `git checkout develop`                                  |
| **2**  | 创建 feature 分支    | `git checkout -b feature/xxx`                           |
| **3**  | 启动本地开发环境         | 后端微服务、前端五端、数据库全部正常运行                                    |
| **4**  | 本地预览全端           | 用户端、骑手端、商家端、平台端、官网全部走一遍页面、流程                            |
| **5**  | 修复遗留问题           | UI、接口、权限、脱敏等全部问题修复完成                                    |
| **6**  | 本地全量自测           | 页面正常、接口正常、登录权限正常、流程跑通、无报错                               |
| **7**  | 提交代码到 feature 分支 | 提交信息清晰规范                                                |
| **8**  | 部署到阿里云开发环境       | 按部署文档执行                                                 |
| **9**  | 云端全端连通测试         | 阿里云环境业务流程完整跑通                                           |
| **10** | 合并到 develop      | 执行标准合并流程                                                |
| **11** | 创建 release 分支    | `git checkout -b release/vx.x.x`                        |
| **12** | 发布到生产环境          | `git checkout main &amp;&amp; git merge release/vx.x.x` |

### 8.3 本地开发环境验证清单

在部署到云端之前，必须完成以下检查：

- [ ] 后端编译 100% 通过（`mvn clean compile -DskipTests`）
- [ ] 所有微服务正常启动、健康检查通过
- [ ] 前端五端（用户、骑手、商家、平台、官网）正常启动
- [ ] 数据库连接正常、数据初始化完成
- [ ] Nacos 配置中心正常、服务注册成功
- [ ] Redis 缓存正常连接
- [ ] 用户登录/退出功能正常
- [ ] 核心业务流程（下单、接单、配送等）完整跑通
- [ ] 浏览器控制台无报错
- [ ] 后端日志无 ERROR 级别错误

---

## 九、代码提交规则

### 9.1 提交前检查清单

每次提交前必须完成：

- [ ] 运行 `git status` 检查变更
- [ ] 运行 `git diff` 查看修改内容
- [ ] 本地编译通过
- [ ] 相关功能自测通过
- [ ] 不包含临时文件、调试代码
- [ ] 不包含敏感信息（密码、密钥等）
- [ ] 提交信息清晰规范

### 9.2 提交信息规范

#### 格式

```
&lt;type&gt;: &lt;subject&gt;

&lt;body&gt;
```

#### Type 类型

| 类型         | 说明       | 示例                     |
|------------|----------|------------------------|
| `feat`     | 新功能      | `feat: 添加用户登录功能`       |
| `fix`      | 修复 bug   | `fix: 修复订单支付超时问题`      |
| `docs`     | 文档更新     | `docs: 更新API文档`        |
| `style`    | 代码格式调整   | `style: 格式化代码`         |
| `refactor` | 代码重构     | `refactor: 重构用户服务`     |
| `perf`     | 性能优化     | `perf: 优化数据库查询`        |
| `test`     | 测试相关     | `test: 添加单元测试`         |
| `chore`    | 构建/工具变动  | `chore: 更新依赖版本`        |
| `ci`       | CI/CD 配置 | `ci: 修改GitHub Actions` |
| `build`    | 构建相关     | `build: 更新Dockerfile`  |
| `config`   | 配置更新     | `config: 修改环境配置`       |

#### Subject 规范

- 使用中文描述
- 不超过 50 个字
- 使用动词开头（添加、修复、更新、优化、移除等）
- 结尾不加句号

#### Body 规范

- 使用中文描述
- 每行不超过 72 个字
- 详细说明修改内容和原因
- 使用列表形式列出主要修改

#### 示例

```
feat: 添加数据脱敏功能

- 实现手机号、身份证号脱敏工具类
- 添加脱敏注解支持字段级配置
- 集成到用户信息查询接口
- 添加单元测试覆盖
```

### 9.3 提交限制

- 单次提交代码量不超过 500 行
- 避免超大提交，拆分逻辑相关的修改
- 禁止提交编译失败的代码
- 禁止提交包含密码、密钥的代码

---

## 十、本地临时文件管理规则

### 10.1 临时文件存放位置

所有本地优化配置、临时文件统一存放在：

```
local_optimization_temp/
├── kong/                    # Kong网关配置
├── temp_security/          # 临时安全工具
├── nginx/                  # Nginx配置
├── Dockerfile.optimized    # 优化版Dockerfile
└── init-kong.sh           # Kong初始化脚本
```

### 10.2 临时文件规则

| 规则               | 说明                    |
|------------------|-----------------------|
| ✅ 保留在本地          | 作为本地优化参考              |
| ❌ 不提交Git         | 不污染版本库                |
| ❌ 不合并到基线         | 保持基线纯净                |
| 🔄 可复制到feature分支 | 如需正式集成，先移到feature分支测试 |

### 10.3 .gitignore 配置

确保以下内容已在 `.gitignore` 中：

```
local_optimization_temp/
*.local
*.temp
*.tmp
.DS_Store
.idea/
.vscode/
```

---

## 十一、环境使用规则

### 11.1 环境分类

| 环境      | 用途      | 责任人  |
|---------|---------|------|
| 本地开发环境  | 日常开发、调试 | 开发人员 |
| 阿里云开发环境 | 联调、集成测试 | 开发团队 |
| 测试环境    | 测试验证    | 测试团队 |
| 生产环境    | 正式对外    | 运维团队 |

### 11.2 环境访问权限

- 本地开发环境：✅ 所有开发人员可操作
- 阿里云开发环境：✅ 开发人员可部署、测试
- 测试环境：⚠️ 仅测试人员可操作
- 生产环境：🔴 仅运维人员可操作

### 11.3 环境操作禁令

| 禁止行为        | 环境    |
|-------------|-------|
| ❌ 直接修改代码    | 测试、生产 |
| ❌ 直接修改配置    | 生产    |
| ❌ 未测试直接部署   | 测试、生产 |
| ❌ 本地未通过直推云端 | 所有环境  |

---

## 十二、版本标签管理规则

### 12.1 标签命名规范

| 标签类型 | 格式                                    | 示例                  |
|------|---------------------------------------|---------------------|
| 基线标签 | `v{major}.{minor}.{patch}-clean-base` | `v1.1.0-clean-base` |
| 发布标签 | `v{major}.{minor}.{patch}`            | `v1.1.0`            |

### 12.2 基线标签创建流程

```bash
# 1. 切换到 clean-base
git checkout clean-base

# 2. 创建附注标签（带描述）
git tag -a v1.1.0-clean-base -m "风七六本地生活服务平台纯净基线 v1.1.0

- 状态：✅ 编译成功 ✅ 无报错 ✅ 无冲突 ✅ 前后端可运行
- 说明：此为官方纯净基线，所有新功能、安全加固必须通过功能分支开发后再合并"

# 3. 推送到远程
git push origin v1.1.0-clean-base

# 4. 查看标签
git tag -l
```

### 12.3 标签回滚流程

如需回滚到之前的基线版本：

```bash
# 1. 查看标签历史
git tag -l --sort=-v:refname

# 2. 切换到指定标签
git checkout v1.1.0-clean-base

# 3. 从标签创建新分支（如需修改）
git checkout -b fix/rollback-from-v1.1.0
```

---

## 十三、团队协作规范

### 13.1 代码审核规则

- 所有合并到 clean-base 的代码必须经过至少 1 人审核
- 审核内容包括：代码质量、安全性、命名规范、测试覆盖
- 审核通过后方可合并

### 13.2 基线同步通知

基线更新后 24 小时内通知所有开发人员：

```
【基线更新通知】
版本：v1.2.0-clean-base
更新内容：xxx
同步要求：请在 48 小时内同步最新基线
```

### 13.3 新人入职流程

1. 阅读本文档
2. 阅读 `project_rules.md` 技术栈规范
3. 从 `v1.1.0-clean-base` 标签开始熟悉代码
4. 在 `feature/security-enhance` 分支进行开发
5. 导师带教完成第一个功能

---

## 十四、违规处理

| 违规行为            | 处理方式        |
|-----------------|-------------|
| 直接修改 clean-base | 回滚 + 警告     |
| 提交敏感信息          | 立即删除 + 安全审查 |
| 未测试部署云端         | 回滚 + 批评教育   |
| 多次违规            | 暂停开发权限 + 培训 |

---

## 十五、文档更新记录

| 日期         | 版本     | 更新内容                                                            | 作者   |
|------------|--------|-----------------------------------------------------------------|------|
| 2026-05-13 | v1.0.0 | 初始版本，正式固化企业级标准流程                                                | 技术团队 |
| 2026-05-14 | v1.1.0 | 添加关联文档说明，完善文件职责体系                                               | 技术团队 |
| 2026-05-14 | v1.2.0 | 添加关联文档说明，完善文件职责体系                                               | 技术团队 |
| 2026-05-27 | v1.2.1 | 整合Podman、MariaDB、镜像仓库等阿里云部署规范，完善项目核心约束与基础信息，补充阿里云部署指南和数据库设计文档引用 | 技术团队 |

---

## 十六、附录

### 16.1 快速参考命令

```bash
# 切换到基线
git checkout clean-base

# 从基线创建功能分支
git checkout -b feature/xxx

# 切换到当前开发分支
git checkout feature/security-enhance

# 创建并推送标签
git tag -a vx.x.x-clean-base -m "..."
git push origin vx.x.x-clean-base

# 查看所有标签
git tag -l

# 后端编译验证
cd services
mvn clean compile -DskipTests
```

### 16.2 相关文档

- 《风七六本地生活服务平台全量开发规范》：`.trae/rules/project_rules.md`
- 《Git提交信息规范》：`.trae/rules/git-commit-message.md`
- 《阿里云部署指南》：`docs/阿里云开发环境部署指南.md`
- 《数据库设计文档》：`docs/04-数据库设计文档.md`

---

## 十七、文件职责说明

### 17.1 规则文档体系

| 文件                       | 职责定位                      | 适用场景            |
|--------------------------|---------------------------|-----------------|
| `git-commit-message.md`  | Git 提交信息规范（快速参考）          | 日常提交代码时快速查阅     |
| `项目开发规范&amp;Git工作流规则.md` | Git 工作流、分支管理、基线管理、团队协作    | **开发流程指导（主文档）** |
| `project_rules.md`       | 技术栈、开发流程、质量安全、部署运维、后端强制规范 | 技术规范总览          |

### 17.2 文件引用关系

```
project_rules.md (技术规范总览)
    ├── 引用 git-commit-message.md (提交信息规范)
    ├── 引用 项目开发规范&amp;Git工作流规则.md (工作流规范)
    └── 包含后端强制规范内容

项目开发规范&amp;Git工作流规则.md (工作流规范 - 主文档)
    ├── 引用 git-commit-message.md (提交信息规范)
    ├── 引用 阿里云开发环境部署指南.md
    └── 引用 04-数据库设计文档.md

git-commit-message.md (快速参考)
    └── 指向 项目开发规范&amp;Git工作流规则.md (详细规范)
```

### 17.3 使用建议

1. **日常开发**：主要参考 `git-commit-message.md` 和 `项目开发规范&amp;Git工作流规则.md`
2. **后端开发**：必须参考 `project_rules.md` 中的「后端开发强制规范」章节
3. **技术决策**：参考 `project_rules.md`
4. **新人入职**：依次阅读 `项目开发规范&amp;Git工作流规则.md` → `project_rules.md` → `git-commit-message.md`

---

## 十八、公司信息（标准配置）

### 18.1 公司基础信息

| 信息项   | 内容            |
|-------|---------------|
| 公司名称  | 大连风中行科技服务有限公司 |
| 平台名称  | 风七六本地生活服务平台   |
| 注册商标  | 风七六           |
| 公司法人  | 叶常青           |
| 项目负责人 | 叶常青           |

### 18.2 联系方式

| 信息项  | 内容                   |
|------|----------------------|
| 联系电话 | 15609857121          |
| 客服电话 | 0411-89704317        |
| 公司邮箱 | fengqiliu_dl@163.com |
| 客服邮箱 | fengqiliu_fw@163.com |
| 技术邮箱 | fengqiliu_js@163.com |

### 18.3 地址信息

- **办公地址**：辽宁省大连市庄河市新华街道永兴街工农1号

### 18.4 统一配置文件引用

以上信息已统一配置在 `.trae/rules/company_info.yml` 文件中，建议在所有新增文档中引用此配置文件的信息。

---

## 十九、CI/CD效率优化规范

### 19.1 Maven依赖缓存

- 在Jenkins Pipeline中配置Maven本地仓库缓存
- 基于`pom.xml`哈希值生成缓存密钥，提高缓存命中率

```groovy
options {
    cache(path: '~/.m2/repository',
          key: 'maven-${MD5SUM(pom.xml)}',
          restoreKeys: ['maven-'])
}
```

### 19.2 Docker镜像分层缓存

- 使用`--cache-from`参数复用已有镜像层
- 按环境打标签，便于缓存复用

### 19.3 流水线并行化

- 单元测试与代码质量检查并行执行
- 不同环境采用不同的并行策略

---

## 二十、质量左移规范

### 20.1 Pre-commit钩子配置

- 使用`pre-commit`工具在代码提交前执行检查
- 配置Checkstyle代码风格检查
- 添加trailing-whitespace、remove-tabs等基础检查

```yaml
repos:
  - repo: https://github.com/pre-commit/mirrors-checkstyle
    rev: 'google_checks'
    hooks:
      - id: checkstyle
        args: ['-c', 'checkstyle/checkstyle.xml']

  - repo: https://github.com/Lucas-C/pre-commit-hooks
    rev: v1.1.10
    hooks:
      - id: remove-tabs
      - id: trailing-whitespace
```

### 20.2 钩子安装与使用

```bash
pip install pre-commit
pre-commit install
pre-commit run --all-files
```

---

## 二十一、监控告警规范

### 21.1 告警分级策略

| 级别     | 触发条件                  | 响应时间 |
|--------|-----------------------|------|
| P1（紧急） | Jenkins服务宕机、服务器磁盘>90% | 15分钟 |
| P2（重要） | 构建连续失败≥3次、证书有效期<7天    | 30分钟 |
| P3（一般） | 容器异常退出、资源使用率>80%      | 1小时  |

### 21.2 钉钉告警集成

- 使用钉钉机器人推送告警消息
- 配置健康检查脚本定时执行
- 覆盖服务器、容器、应用多维度监控

### 21.3 运维操作标准化

- 环境切换脚本集成至Jenkins流水线
- 实现一键切换环境（dev/test/pre）
- 操作日志自动记录，便于问题追溯

---

## 二十二、规范执行与迭代

本规范为项目开发的强制标准，所有开发、部署、运维操作必须严格遵守。

规范将随着项目迭代持续优化，所有修改需经团队确认后更新，并同步至所有相关文档与脚本。

---

## 二十三、落地路线图

### 第一阶段：开发/测试环境（当前）

- ✅ Maven依赖缓存配置
- ✅ Docker镜像分层缓存
- ✅ Pre-commit钩子配置
- ✅ 钉钉告警触达
- ✅ 流水线化环境切换
- ✅ 巡检闭环流程

### 第二阶段：灰度预发环境（测试完成后）

- ⬜ 敏感配置KMS加密
- ⬜ 镜像漏洞扫描
- ⬜ OSS异地备份

### 第三阶段：生产环境（业务稳定后）

- ⬜ 跨可用区部署
- ⬜ RDS主备实例
- ⬜ 金丝雀发布

### 第四阶段：持续优化（长期）

- ⬜ Prometheus+Grafana监控
- ⬜ Terraform基础设施即代码
- ⬜ 灾备演练常态化

---

**文档生效声明**

本文档自发布之日起正式生效，所有风七六项目开发人员必须严格遵守。如有疑问，请联系技术负责人。

---

**项目信息**

- 项目名称：风七六本地生活服务平台
- 开发单位：大连风中行科技服务有限公司
- 联系方式：fengqiliu_dl@163.com
- 技术负责人：叶常青
- 联系电话：15609857121

