# **开发经验与项目规范整理文档**

## 目录

1. 变量名维护方案
2. 文件结构与命名规范
3. 编码规范（Coding Style Guide）
4. 系统架构原则
5. 程序设计核心思想
6. 微服务
7. Redis
8. 消息队列

---

# **1. 变量名维护方案**

## 1.1 新建“变量名大全文件”

建立一个统一的变量索引文件，用于 AI 以及团队整体维护。

### 文件内容包括（格式示例）：

| 变量名      | 变量注释（描述） | 出现位置（文件路径）           | 出现频率（统计） |
| -------- | -------- | -------------------- | -------- |
| user_age | 用户年龄     | /src/user/profile.js | 12       |

### 目的

* 统一变量命名
* 方便全局搜索
* AI 或人工可统一管理、重构
* 降低命名冲突和语义不清晰带来的风险

---

# **2. 文件结构与命名规范**

## 2.1 子文件夹内容

每个子目录中需要包含：

* `agents` —— 负责自动化流程、提示词、代理逻辑
* `claude.md` —— 存放该文件夹内容的说明文档、设计思路与用途

## 2.2 文件命名规则

* 使用 **小写英文 + 下划线** 或 **小驼峰**（视语言而定）
* 文件名需体现内容职责
* 避免缩写与含糊不清的命名

示例：

* `user_service.js`
* `order_processor.py`
* `config_loader.go`

## 2.3 变量与定义规则及解释

* 命名尽可能语义化
* 遵循英语语法逻辑（名词属性、动词行为）
* 避免 `a, b, c` 此类无意义名称
* 常量使用大写 + 下划线（如：`MAX_RETRY_COUNT`）

---

# **3. 编码规范**

### 3.1 单一职责（Single Responsibility）

每个文件、每个类、每个函数应只负责一件事。

### 3.2 可复用函数 / 构建（Reusable Components）

* 提炼公共逻辑
* 避免重复代码（DRY）
* 模块化、函数化，提高复用价值

### 3.3 消费端 / 生产端 / 状态（变量）/ 变换（函数）

系统行为应明确划分：

| 概念     | 说明             |
| ------ | -------------- |
| 消费端    | 接收外部数据或依赖输入的地方 |
| 生产端    | 生成数据、输出结果的地方   |
| 状态（变量） | 存储当前系统信息的变量    |
| 变换（函数） | 处理状态、改变数据的逻辑   |

明确区分 **输入 → 处理 → 输出**，并独立管理每个环节。

### 3.4 并发（Concurrency）

* 清晰区分共享资源
* 避免数据竞争
* 必要时加锁或使用线程安全结构
* 区分“并发处理”和“异步处理”的差异

---

# **4. 系统架构原则**

### 4.1 先梳理清楚架构

在写代码前先明确：

* 模块划分
* 输入输出
* 数据流向
* 服务边界
* 技术栈
* 依赖关系

### 4.2 理解需求 → 保持简单 → 自动化测试 → 小步迭代

严谨开发流程：

1. 先理解需求
2. 保持架构与代码简单
3. 写可维护的自动化测试
4. 小步迭代，不做大爆炸开发

---

# **5. 程序设计核心思想**

## 5.1 从问题开始，而不是从代码开始

编程的第一步永远是：**你要解决什么问题？**

## 5.2 大问题拆小问题（Divide & Conquer）

复杂问题拆解为可独立完成的小单元。

## 5.3 KISS 原则（保持简单）

减少复杂度、魔法代码、晦涩技巧。

## 5.4 DRY 原则（不要重复）

用函数、类、模块复用逻辑，不要复制粘贴。

## 5.5 清晰的命名

* `user_age` 比 `a` 清晰
* `get_user_profile()` 比 `gp()` 清晰
  命名要体现**用途**和**语义**。

## 5.6 单一职责

一个函数只处理一个任务。

## 5.7 代码可读性优先

你写的代码是给别人理解的，不是来炫技的。

## 5.8 合理注释

注释解释“为什么”，不是“怎么做”。

## 5.9 Make it work → Make it right → Make it fast

先能跑，再让它好看，最后再优化性能。

## 5.10 错误是朋友，调试是必修课

阅读报错、查日志、逐层定位，是程序员核心技能。

## 5.11 Git 版本控制是必备技能

永远不要把代码只放本地。

## 5.12 测试你的代码

未测试的代码迟早会出问题。

## 5.13 编程是长期练习

所有人都经历过：

* bug 调不出来
* 通过时像挖到宝
* 看着看着能看懂别人代码

坚持即是高手。

---

# **6. 微服务**

微服务是一种架构模式，将系统拆解为多个 **独立开发、独立部署、独立扩容** 的服务。

特点：

* 每个服务处理一个业务边界（Bounded Context）
* 服务间通过 API 通信（HTTP、RPC、MQ 等）
* 更灵活、更可扩展、容错更高

---

# **7. Redis（缓存 / 内存数据库）**

Redis 的作用：

* 作为缓存极大提升系统“读性能”
* 降低数据库压力
* 提供计数、锁、队列、Session 等能力
* 让系统更快、更稳定、更抗压

---

# **8. 消息队列（Message Queue）**

消息队列用于服务之间的“异步通信”。

作用：

* 解耦
* 削峰填谷
* 异步任务处理
* 提高系统稳定性与吞吐
