# 项目重构总结 ## 重构目标 将项目从混乱的目录结构重构为标准的 Python 包结构,遵循 PEP 621 规范。 ## 重构前后对比 ### 重构前 ``` . ├── adapters/ # 适配器 ├── core/ # 核心代码 ├── models/ # 数据模型 ├── plugins/ # 插件 ├── tests/ # 测试 ├── docs/ # 文档 ├── templates/ # 模板 ├── web_static/ # 静态文件 ├── data/ # 数据 ├── main.py # 主程序 └── ... ``` **问题:** - 所有模块都在根目录,结构混乱 - 缺少标准的 Python 包结构 - 不符合现代 Python 项目的最佳实践 - 导入路径不清晰 ### 重构后 ``` . ├── src/ │ └── neobot/ # 核心包 │ ├── core/ # 框架核心 │ ├── models/ # 数据模型 │ ├── adapters/ # 平台适配器 │ ├── plugins/ # 插件 │ ├── tests/ # 测试 │ ├── templates/ # 模板 │ ├── docs/ # 文档 │ ├── web_static/ # 静态文件 │ └── data/ # 数据 ├── main.py # 主程序入口 └── ... ``` **优势:** - 符合 PEP 621 标准的 Python 包结构 - 清晰的模块划分 - 更好的可维护性和可扩展性 - 符合现代 Python 项目的最佳实践 ## 主要变更 ### 1. 目录结构 - 所有 Python 代码移动到 `src/neobot/` 目录 - 采用标准的 Python 包结构 - 每个模块都有清晰的 `__init__.py` 文件 ### 2. 导入路径 所有导入路径从 `core.*`、`models.*` 等改为 `neobot.core.*`、`neobot.models.*` 等。 **示例:** ```python # 重构前 from core.managers import plugin_manager from models import MessageSegment # 重构后 from neobot.core.managers import plugin_manager from neobot.models import MessageSegment ``` ### 3. 配置文件更新 - `pyproject.toml` 更新为使用 `src/` 目录结构 - `README.md` 更新项目结构说明 - `.gitignore` 更新以忽略新的数据目录路径 ### 4. 主程序更新 - `main.py` 更新所有导入路径 - 更新插件目录路径为 `src/neobot/plugins` ## 新的模块组织 ### src/neobot/core/ 框架核心代码,包含: - **api/**: OneBot API 封装 - **handlers/**: 事件处理器 - **managers/**: 各种管理器 - **services/**: 服务层 - **utils/**: 工具函数 ### src/neobot/models/ 数据模型定义,包含: - **events/**: OneBot 事件模型 - **message.py**: 消息段模型 - **objects.py**: API 响应对象 - **sender.py**: 发送者信息 ### src/neobot/plugins/ 插件目录,所有业务逻辑都在这里。 ### src/neobot/adapters/ 平台适配器,用于连接不同平台(如 Discord)。 ### src/neobot/tests/ 单元测试和集成测试文件。 ## 使用方式 ### 开发环境 ```bash # 安装依赖 pip install -r requirements.txt # 运行测试 pytest src/neobot/tests/ # 构建包 python -m build ``` ### 导入包 ```python # 导入核心模块 from neobot.core.managers import plugin_manager # 导入数据模型 from neobot.models import MessageSegment, OneBotEvent # 导入适配器 from neobot.adapters import DiscordAdapter # 导入插件 from neobot.plugins import admin, echo ``` ## 注意事项 1. 所有代码文件使用绝对导入 2. 插件开发请参考 `src/neobot/docs/plugin-development/` 3. 核心开发请参考 `src/neobot/docs/core-concepts/` 4. 配置文件 `config.toml` 保持在根目录 ## 后续建议 1. 运行 `pip install -e .` 进行开发安装 2. 运行 `mypy` 进行类型检查 3. 运行 `pytest` 进行测试 4. 定期运行 `flake8` 进行代码风格检查