# 系统架构

## 规则（Rules）

# 系统架构设计规范

## 适用对象和范围

本规范适用于所有设计系统架构的场景，包括模块划分、技术栈选型、接口设计。

---

## 1. 模块划分规范

**规则**：系统必须按分层架构划分为前端层、API网关层、业务服务层、数据访问层和基础设施层。

**违反后果**：缺少分层导致模块耦合度高，难以维护和扩展。

---

## 2. 技术选型规范

**规则**：必须在文档中列出选型理由和备选方案，禁止在未评估风险的情况下选择技术方案。

**违反后果**：未评估风险的技术选型可能导致项目后期遇到不可预见的困难。

---

## 3. 非功能需求规范

**规则**：架构设计必须体现性能、安全和可扩展性等非功能需求。

**违反后果**：忽略非功能需求导致系统上线后无法满足性能和安全性要求。

---

## 4. 文档命名规范

**规则**：核心架构文档必须固定使用 `架构设计文档(ADD).md`。

**违反后果**：动态命名的文档导致查找困难，无法建立统一的文档体系。

## 方法（Methods）

# 系统架构设计方法

## 前置条件

- [ ] 已获取需求文档（含功能需求和非功能需求）

## 流程概览

分析需求 → 设计系统模块划分 → 技术选型 → 设计接口规范 → 输出架构设计文档

## 详细步骤

### 步骤1：分析需求
分析需求文档，提取功能需求和非功能需求。

### 步骤2：设计系统模块划分
将系统划分为前端层、API网关层、业务服务层、数据访问层和基础设施层。创建架构设计文档。

### 步骤3：技术选型
对每个模块选择技术栈。

## 技巧（Tips）

# 系统架构设计技巧

## 1. 遵循KISS原则

**适用场景**：架构设计趋于复杂时。

**具体做法**：只在必要时引入复杂度，能用简单方案就不用复杂方案。

**注意事项**：过度设计是架构设计的常见问题，先满足当前需求，预留扩展点即可。

---

## 2. 常见问题速查

| 问题 | 原因 | 解决方案 |
|------|------|---------|
| 架构过于复杂 | 过度设计 | 简化设计，非核心功能拆分到后续迭代 |
| 技术选型有风险 | 选用了不成熟的技术 | 准备备选方案，标注风险等级 |
| 模块边界不清 | 职责划分不明确 | 重新划分模块职责和边界 |
