删掉多余的
This commit is contained in:
1 parent
887c1f449e
commit
a22ee82b07
9 files changed
+1054
-207
No files matched your search
@@ -39,35 +39,6 @@ uv run pytest # 运行测试
|
||||
所有的测试代码都写在tests目录下,测试文件命名以test_开头,测试函数命名以test_开头
|
||||
所有敏感信息(如密钥、Token、数据库密码)必须通过环境变量或配置文件管理,禁止硬编码到代码中
|
||||
|
||||
## 目录结构与分层边界
|
||||
|
||||
后端采用务实分层,完整设计见 [后端分层架构设计](../docs/architecture/backend-layering-design.md),本节为开发速查。
|
||||
|
||||
### 顶层目录职责
|
||||
|
||||
| 目录 | 职责 |
|
||||
| --- | --- |
|
||||
| `api/v1` | `endpoints/`(路由)+ `deps.py`(依赖注入),只做 参数校验 → 调用 → 转响应 |
|
||||
| `schemas` | Pydantic 请求/响应(API 边界) |
|
||||
| `application` | 用例编排(跨多模块复杂流程) |
|
||||
| `services` | 薄业务服务(CRUD 编排) |
|
||||
| `modules` | 九枢领域逻辑(★ 纯函数/数据结构,禁止 IO) |
|
||||
| `models` | SQLAlchemy ORM |
|
||||
| `repositories` | 数据访问(返回 ORM,不暴露 Query/Session) |
|
||||
| `ai_provider` | 统一模型接入层(chat/multimodal/embedding/rerank) |
|
||||
| `integrations` | 外部系统适配(沙箱/向量/图/对象存储) |
|
||||
| `core` | 配置集中(`core/config/`)+ 日志/错误/安全/ID/时间 |
|
||||
| `db` | 数据库会话与初始化 |
|
||||
|
||||
### 分层硬规矩
|
||||
|
||||
- `modules/` 禁止 import `repositories` / `db` / `integrations` / `ai_provider` / `httpx` / `sqlalchemy`——一旦需要 IO,立即上移到 `services` 或 `application`。
|
||||
- 路由函数禁止直接 `Depends(get_session)` 或写业务逻辑——改为注入 usecase / service。
|
||||
- `repositories/` 返回 ORM,禁止把 Query / Session 暴露到上层。
|
||||
- 模型能力(对话/多模态/嵌入/重排)一律进 `ai_provider/`;存储/检索/外部接入进 `integrations/`。
|
||||
- 配置一律进 `core/config/`,业务目录不持有 `settings.py` / `config.py`。
|
||||
- `.env` 只放项目根目录,`Settings` 以绝对路径 `_env_file` 初始化,不使用 `python-dotenv`。
|
||||
|
||||
## 代码审查
|
||||
|
||||
开发完成后必须使用以下命令进行代码检查:
|
||||
|
||||
Reference in new issue
Block a user