54 lines
2.1 KiB
Markdown
54 lines
2.1 KiB
Markdown
---
|
||
doc_id: DOC-AA-007
|
||
title: 模块边界规则
|
||
version: 0.1.0
|
||
status: reviewed
|
||
owners:
|
||
- 林然
|
||
upstream:
|
||
- ./02a-layered-architecture.md
|
||
- ./02-modules.csv
|
||
downstream:
|
||
- ./06-codebase-alignment.csv
|
||
updated_at: 2026-03-23
|
||
---
|
||
|
||
# 模块边界规则
|
||
|
||
## 1. 跨模块依赖规则
|
||
|
||
### 允许的依赖方向
|
||
- MOD-SCANNER → MOD-DESIGN(Scanner 生成 Design 实体,调用 Design 约束规则)
|
||
- MOD-GRAPH → MOD-DESIGN(Graph 读取 Design 实体转换为图结构)
|
||
- MOD-EDITOR → MOD-DESIGN, MOD-SCANNER, MOD-GRAPH(Phase 2)
|
||
- MOD-IMPL-TRACKER → MOD-DESIGN, MOD-SCANNER(Phase 2)
|
||
|
||
### 禁止的依赖
|
||
- MOD-DESIGN 不依赖任何其他业务模块(它是被依赖的核心)
|
||
- MOD-PROJECT 不依赖其他业务模块(独立管理项目元数据)
|
||
- MOD-GRAPH 不直接读文件系统(通过 Design 实体获取数据)
|
||
- 前端模块之间不直接调用(通过 Pinia store 或事件通信)
|
||
|
||
## 2. 数据边界
|
||
|
||
- 每个模块只通过 domain 层的公共接口暴露数据
|
||
- 模块间传递的是 domain 实体或其 DTO,不是原始文件内容
|
||
- MOD-DESIGN 的实体是跨模块共享的"通用语言"
|
||
|
||
## 3. 反模式清单
|
||
|
||
| 反模式 | 说明 |
|
||
|--------|------|
|
||
| Scanner 包含业务规则 | 业务规则(如"capability 必须关联 module")属于 MOD-DESIGN |
|
||
| Graph 直接读文件 | Graph 应该从 Design 实体构建图,不应该自己解析文件 |
|
||
| Editor 绕过 Scanner 修改文件 | 修改后必须触发重新扫描保证数据一致 |
|
||
| Domain 层引入框架依赖 | domain 层纯 Python,不导入 FastAPI/Pydantic/SQLAlchemy 等 |
|
||
| 前端组件硬编码 API 地址 | API 调用封装在模块的 api/ 目录,组件通过 composables 调用 |
|
||
| 前端模块间直接 import 组件 | 通过 shared/ 或事件通信 |
|
||
|
||
## 4. 演进策略
|
||
|
||
- MVP 阶段 MOD-DESIGN 是被动的纯模型库
|
||
- Phase 2 可以在 MOD-DESIGN 中增加更复杂的校验服务(如跨文件一致性检查)
|
||
- 如果 MOD-SCANNER 变得过大,可以按文件类型拆分(csv-parser、md-parser、yaml-parser),但保持在 Scanner 的 infrastructure 层内
|