[ PROMPT_NODE_23752 ]
architecture-overview
[ SKILL_DOCUMENTATION ]
# 架构概览 - 后端服务
后端微服务所采用的分层架构模式的完整指南。
## 目录
- [分层架构模式](#layered-architecture-pattern)
- [请求生命周期](#request-lifecycle)
- [服务对比](#service-comparison)
- [目录结构原理](#directory-structure-rationale)
- [模块组织](#module-organization)
- [关注点分离](#separation-of-concerns)
---
## 分层架构模式
### 四层结构
┌─────────────────────────────────────┐
│ HTTP 请求 │
└───────────────┬─────────────────────┘
↓
┌─────────────────────────────────────┐
│ 第 1 层: 路由 (ROUTES) │
│ - 仅包含路由定义 │
│ - 中间件注册 │
│ - 委托给控制器 │
│ - 无业务逻辑 │
└───────────────┬─────────────────────┘
↓
┌─────────────────────────────────────┐
│ 第 2 层: 控制器 (CONTROLLERS) │
│ - 请求/响应处理 │
│ - 输入验证 │
│ - 调用服务 │
│ - 格式化响应 │
│ - 错误处理 │
└───────────────┬─────────────────────┘
↓
┌─────────────────────────────────────┐
│ 第 3 层: 服务 (SERVICES) │
│ - 业务逻辑 │
│ - 编排 │
│ - 调用存储库 │
│ - 不感知 HTTP │
└───────────────┬─────────────────────┘
↓
┌─────────────────────────────────────┐
│ 第 4 层: 存储库 (REPOSITORIES) │
│ - 数据访问抽象 │
│ - Prisma 操作 │
│ - 查询优化 │
│ - 缓存 │
└───────────────┬─────────────────────┘
↓
┌─────────────────────────────────────┐
│ 数据库 (MySQL) │
└─────────────────────────────────────┘
### 为什么选择这种架构?
**可测试性:**
- 每一层都可以独立测试
- 易于模拟依赖项
- 清晰的测试边界
**可维护性:**
- 变更被隔离在特定层级
- 业务逻辑与 HTTP 关注点分离
- 易于定位 Bug
**可重用性:**
- 服务可被路由、定时任务、脚本调用
- 存储库隐藏了数据库实现细节
- 业务逻辑不绑定于 HTTP
**可扩展性:**
- 易于添加新端点
- 清晰的模式