feat:初版
This commit is contained in:
254
Memory Bank/decisionLog.md
Normal file
254
Memory Bank/decisionLog.md
Normal file
@@ -0,0 +1,254 @@
|
||||
# 技术决策日志
|
||||
|
||||
记录项目中的重要技术决策、原因和影响。
|
||||
|
||||
---
|
||||
|
||||
## 2025-01-12
|
||||
|
||||
### 决策 #001: 项目架构选择
|
||||
|
||||
**决策:** 采用四层架构设计(DLL Hook → WechatHook → Bot Core → Plugin)
|
||||
|
||||
**原因:**
|
||||
- 清晰的职责分离
|
||||
- 便于维护和扩展
|
||||
- 最大化复用 XYBotV2 代码
|
||||
|
||||
**影响:**
|
||||
- 代码结构清晰
|
||||
- 80% 代码可复用
|
||||
- 学习成本低
|
||||
|
||||
**状态:** ✅ 已实施
|
||||
|
||||
---
|
||||
|
||||
### 决策 #002: DLL 文件存放位置
|
||||
|
||||
**决策:** DLL 文件放在项目的 `libs/` 目录,不放到微信安装目录
|
||||
|
||||
**原因:**
|
||||
- Loader.dll 由 Python 程序直接加载
|
||||
- Helper.dll 由 Loader.dll 动态注入到微信进程
|
||||
- 不需要修改微信安装目录
|
||||
|
||||
**影响:**
|
||||
- 部署更简单
|
||||
- 不污染微信目录
|
||||
- 便于版本管理
|
||||
|
||||
**状态:** ✅ 已实施
|
||||
|
||||
---
|
||||
|
||||
### 决策 #003: 不进行本地测试
|
||||
|
||||
**决策:** 所有测试在远程设备进行,开发过程中不在本地运行
|
||||
|
||||
**原因:**
|
||||
- 用户要求
|
||||
- 避免本地环境污染
|
||||
- 专注于代码实现
|
||||
|
||||
**影响:**
|
||||
- 需要更仔细的代码审查
|
||||
- 依赖用户反馈进行调试
|
||||
- 开发周期可能稍长
|
||||
|
||||
**状态:** ✅ 已实施
|
||||
|
||||
---
|
||||
|
||||
### 决策 #004: 复用 XYBotV2 插件系统
|
||||
|
||||
**决策:** 完全复用 XYBotV2 的插件系统(PluginBase、EventManager、装饰器)
|
||||
|
||||
**原因:**
|
||||
- 插件系统设计优秀
|
||||
- 已经过验证
|
||||
- 减少开发工作量
|
||||
- 保持插件兼容性
|
||||
|
||||
**影响:**
|
||||
- 开发速度快
|
||||
- XYBot 插件可直接使用
|
||||
- 代码质量有保证
|
||||
|
||||
**状态:** ✅ 已确定,待实施
|
||||
|
||||
---
|
||||
|
||||
### 决策 #005: 使用 Memory Bank 系统
|
||||
|
||||
**决策:** 创建 Memory Bank 文件夹,实时跟踪项目进度和决策
|
||||
|
||||
**原因:**
|
||||
- 用户要求
|
||||
- 便于项目管理
|
||||
- 保持开发上下文
|
||||
- 方便后续维护
|
||||
|
||||
**影响:**
|
||||
- 项目管理更规范
|
||||
- 决策过程可追溯
|
||||
- 便于团队协作
|
||||
|
||||
**文件结构:**
|
||||
- projectBrief.md - 项目简介
|
||||
- activeContext.md - 当前上下文
|
||||
- progress.md - 进度跟踪
|
||||
- decisionLog.md - 决策日志
|
||||
- systemPatterns.md - 系统模式
|
||||
|
||||
**状态:** ✅ 已实施
|
||||
|
||||
---
|
||||
|
||||
### 决策 #006: 消息类型映射策略
|
||||
|
||||
**决策:** 创建独立的 message_types.py 文件,定义 API type 到内部 event 的映射
|
||||
|
||||
**原因:**
|
||||
- 解耦消息类型定义
|
||||
- 便于维护和扩展
|
||||
- 统一消息格式转换
|
||||
|
||||
**实现方式:**
|
||||
```python
|
||||
MESSAGE_TYPE_MAP = {
|
||||
10001: "text_message",
|
||||
10002: "image_message",
|
||||
# ...
|
||||
}
|
||||
```
|
||||
|
||||
**影响:**
|
||||
- 代码更清晰
|
||||
- 易于添加新消息类型
|
||||
- 便于调试
|
||||
|
||||
**状态:** ✅ 已确定,待实施
|
||||
|
||||
---
|
||||
|
||||
### 决策 #007: 回调处理机制
|
||||
|
||||
**决策:** 使用装饰器模式实现回调处理(@CONNECT_CALLBACK, @RECV_CALLBACK, @CLOSE_CALLBACK)
|
||||
|
||||
**原因:**
|
||||
- 参考 python_demo.py 的实现
|
||||
- 代码简洁优雅
|
||||
- 易于扩展
|
||||
|
||||
**影响:**
|
||||
- 回调注册简单
|
||||
- 支持多个回调处理器
|
||||
- 代码可读性好
|
||||
|
||||
**状态:** ✅ 已确定,待实施
|
||||
|
||||
---
|
||||
|
||||
### 决策 #008: 异步编程模型
|
||||
|
||||
**决策:** 使用 asyncio 作为异步编程框架,所有 API 都是异步函数
|
||||
|
||||
**原因:**
|
||||
- 与 XYBotV2 保持一致
|
||||
- 提高并发性能
|
||||
- 插件系统要求
|
||||
|
||||
**影响:**
|
||||
- 所有函数必须使用 async/await
|
||||
- 需要处理同步/异步转换
|
||||
- 性能更好
|
||||
|
||||
**状态:** ✅ 已确定,待实施
|
||||
|
||||
---
|
||||
|
||||
### 决策 #009: 配置文件格式
|
||||
|
||||
**决策:** 使用 TOML 格式作为配置文件格式
|
||||
|
||||
**原因:**
|
||||
- 与 XYBotV2 保持一致
|
||||
- 可读性好
|
||||
- Python 3.11+ 原生支持
|
||||
|
||||
**影响:**
|
||||
- 配置文件易于编辑
|
||||
- 支持注释
|
||||
- 类型安全
|
||||
|
||||
**状态:** ✅ 已实施
|
||||
|
||||
---
|
||||
|
||||
### 决策 #010: 数据库选择
|
||||
|
||||
**决策:** 使用 SQLite + aiosqlite 作为数据库
|
||||
|
||||
**原因:**
|
||||
- 与 XYBotV2 保持一致
|
||||
- 无需额外服务
|
||||
- 支持异步操作
|
||||
|
||||
**影响:**
|
||||
- 部署简单
|
||||
- 性能足够
|
||||
- 便于备份
|
||||
|
||||
**状态:** ✅ 已确定,待实施
|
||||
|
||||
---
|
||||
|
||||
## 待决策事项
|
||||
|
||||
### 待决策 #001: 消息类型 type 值
|
||||
|
||||
**问题:** 个微 API 各类消息的具体 type 值未知
|
||||
|
||||
**选项:**
|
||||
1. 参考 API 文档推测
|
||||
2. 实际测试获取
|
||||
|
||||
**倾向:** 选项 2 - 实际测试获取
|
||||
|
||||
**需要:** 用户提供实际消息的 type 值
|
||||
|
||||
---
|
||||
|
||||
### 待决策 #002: WebUI 是否实现
|
||||
|
||||
**问题:** 是否需要实现 Web 管理界面
|
||||
|
||||
**选项:**
|
||||
1. 立即实现
|
||||
2. 基础功能完成后再实现
|
||||
3. 不实现
|
||||
|
||||
**倾向:** 选项 2 - 基础功能完成后再实现
|
||||
|
||||
**原因:** 先保证核心功能稳定
|
||||
|
||||
---
|
||||
|
||||
## 决策模板
|
||||
|
||||
```markdown
|
||||
### 决策 #XXX: 决策标题
|
||||
|
||||
**决策:** 简要描述决策内容
|
||||
|
||||
**原因:**
|
||||
- 原因1
|
||||
- 原因2
|
||||
|
||||
**影响:**
|
||||
- 影响1
|
||||
- 影响2
|
||||
|
||||
**状态:** ✅ 已实施 / 🚧 进行中 / ⏳ 待实施 / ❌ 已废弃
|
||||
```
|
||||
Reference in New Issue
Block a user