docs: 更新文档和技能

This commit is contained in:
tukuaiai
2025-12-17 23:16:46 +08:00
parent fb74acbd9b
commit 4f5bc01e3d
37 changed files with 724 additions and 443 deletions
@@ -455,6 +455,241 @@ build-backend = "setuptools.build_meta"
---
在**编程 / 软件开发**里,**项目架构(Project Architecture / Software Architecture**指的是:
> **一个项目在“整体层面”是如何被拆分、组织、通信和演进的设计方案**
> ——它决定了代码怎么分层、模块怎么分工、数据怎么流动、系统如何扩展和维护。
---
## 一句话理解
**项目架构 = 不写具体业务代码之前,就先决定“代码怎么放、模块怎么连、职责怎么分”。**
---
## 一、项目架构主要解决什么问题?
项目架构不是“写代码的技巧”,而是解决这些**更高层问题**:
* 📦 代码怎么组织才不乱?
* 🔁 模块之间怎么通信?
* 🧱 哪些地方可以独立修改而不影响全局?
* 🚀 项目以后怎么扩展?
* 🧪 如何方便测试、调试、部署?
* 👥 多人协作如何不互相踩代码?
---
## 二、项目架构一般包含哪些内容?
### 1️⃣ 目录结构(最直观)
```text
project/
├── src/
│ ├── main/
│ ├── services/
│ ├── models/
│ ├── utils/
│ └── config/
├── tests/
├── docs/
└── README.md
```
👉 决定 **“不同类型代码放哪里”**
---
### 2️⃣ 分层设计(核心)
最常见的是 **分层架构(Layered Architecture**
```text
表示层(UI / API
业务逻辑层(Service
数据访问层(DAO / Repository
数据库 / 外部系统
```
**规则:**
* 上层可以调用下层
* 下层不能反过来依赖上层
---
### 3️⃣ 模块划分(职责边界)
比如一个交易系统:
```text
- market_data # 行情
- strategy # 策略
- risk # 风控
- order # 下单
- account # 账户
```
👉 每个模块:
* 只做一类事情
* 尽量低耦合、高内聚
---
### 4️⃣ 数据与控制流
* 数据从哪里来?
* 谁负责处理?
* 谁负责存储?
* 谁负责对外输出?
例如:
```text
WebSocket → 数据清洗 → 指标计算 → AI评分 → SQLite → API → 前端
```
---
### 5️⃣ 技术选型(架构的一部分)
* 编程语言(Python / Java / Go
* 框架(FastAPI / Spring / Django
* 通信方式(HTTP / WebSocket / MQ
* 存储(SQLite / Redis / PostgreSQL
* 部署(本地 / Docker / 云)
---
## 三、常见项目架构类型(入门必懂)
### 1️⃣ 单体架构(Monolith
```text
一个项目,一个进程
```
**适合:**
* 个人项目
* 原型
* 小系统
**优点:**
* 简单
* 好调试
**缺点:**
* 后期难扩展
---
### 2️⃣ 分层架构(最常见)
```text
Controller → Service → Repository
```
**适合:**
* Web 后端
* 业务系统
---
### 3️⃣ 模块化架构
```text
core + plugins
```
**适合:**
* 可插拔系统
* 策略 / 指标系统
👉 **你做量化、AI分析,非常适合这个**
---
### 4️⃣ 微服务架构(进阶)
```text
每个服务一个独立进程 + API 通信
```
**适合:**
* 大团队
* 高并发
* 长期演进
**新手不建议一开始用**
---
## 四、用一个“真实例子”理解(贴近你现在做的)
假设你做 **币安永续 AI 分析系统**
```text
backend/
├── data/
│ └── binance_ws.py # 行情订阅
├── indicators/
│ └── vpvr.py
├── strategy/
│ └── signal_score.py
├── storage/
│ └── sqlite_writer.py
├── api/
│ └── http_server.py
└── main.py
```
这就是**项目架构设计**
* 每个文件夹只负责一件事
* 可替换、可测试
* 后面想接 Telegram Bot / Web 前端都不用重写核心
---
## 五、初学者常见误区 ⚠️
❌ 一开始就搞微服务
❌ 所有代码写在一个文件
❌ 架构追求“高级感”,而不是“可维护”
❌ 没想清楚数据流就开始写
---
## 六、学习路线建议(很重要)
你现在学 CS,很推荐这个顺序:
1. **先写能跑的项目(不完美)**
2. **代码开始乱 → 才学架构**
3. 学会:
* 模块拆分
* 分层
* 依赖方向
4. 再学:
* 设计模式
* 微服务 / 消息队列
---
**版本**: 1.0
**更新日期**: 2025-11-24
**维护**: CLAUDECODEXKIMI