|
| 1 | +# SDK 对齐关系 |
| 2 | + |
| 3 | +## 包一览 |
| 4 | + |
| 5 | +| 目录 | 包名 | 语言 | 定位 | 核心模型 | |
| 6 | +|------|------|------|------|----------| |
| 7 | +| `packages/dart/` | `quanttide_project` | Dart | 数据模型(参考实现) | Project, Task | |
| 8 | +| `packages/python/` | `quanttide-project` | Python | 数据模型(Pydantic) | Project, Task | |
| 9 | +| `packages/fastapi/` | `fastapi-quanttide-project` | Python | FastAPI CRUD 路由 | ProjectRouter, TaskRouter | |
| 10 | +| `packages/flutter/` | `flutter_quanttide_project` | Dart/Flutter | 看板 UI 组件 | BoardView, BoardColumn, BoardCard | |
| 11 | + |
| 12 | +## 概念映射 |
| 13 | + |
| 14 | +| 领域概念 | dart | python | fastapi | flutter | |
| 15 | +|----------|------|--------|---------|---------| |
| 16 | +| 项目 | Project | Project | ProjectRouter | — | |
| 17 | +| 任务 | Task | Task | TaskRouter | BoardCard | |
| 18 | +| 看板列 | — | — | — | BoardColumn | |
| 19 | +| 看板视图 | — | — | — | BoardView | |
| 20 | + |
| 21 | +## 依赖链 |
| 22 | + |
| 23 | +``` |
| 24 | +dart(参考实现,无依赖) |
| 25 | + │ |
| 26 | + ├── python(Pydantic 模型,对标 dart) |
| 27 | + │ │ |
| 28 | + │ └── fastapi(依赖 python 包) |
| 29 | + │ |
| 30 | + └── flutter(UI 组件,依赖 dart 包的概念) |
| 31 | +``` |
| 32 | + |
| 33 | +`flutter` 包是纯 UI 组件,不包含数据模型,通过外部传入数据渲染。 |
| 34 | + |
| 35 | +## 变更一个字段需要在哪些包改 |
| 36 | + |
| 37 | +以给 Task 增加一个新字段为例: |
| 38 | + |
| 39 | +| 操作 | dart | python | fastapi | flutter | |
| 40 | +|------|------|--------|---------|---------| |
| 41 | +| 字段定义 | 改 Task 类 | 改 Task 模型 | 无需改动 | 无需改动 | |
| 42 | +| JSON 序列化 | 改 toJson/fromJson | 无需改动(Pydantic 自动) | — | — | |
| 43 | +| CRUD 路由 | — | — | 自动继承 | — | |
| 44 | +| UI 展示 | — | — | — | 改 BoardCard | |
| 45 | + |
| 46 | +## 维护原则 |
| 47 | + |
| 48 | +1. **dart 是参考源** — 新字段先在 dart 包定义,其他语言对照实现 |
| 49 | +2. **python 包保持纯模型** — 只做 Pydantic 序列化,不做业务逻辑 |
| 50 | +3. **fastapi 不关心字段** — 从 python 包自动推导 Schema,字段增减无需改 fastapi |
| 51 | +4. **flutter 是纯 UI** — 不包含数据模型,通过外部传入数据渲染 |
| 52 | + |
| 53 | +## 发布流程 |
| 54 | + |
| 55 | +```mermaid |
| 56 | +graph LR |
| 57 | + dart[dart] --> python[python] |
| 58 | + python --> fastapi[fastapi] |
| 59 | +``` |
| 60 | + |
| 61 | +1. dart 包发版(`pub publish`) |
| 62 | +2. python 包发版(`uv publish`) |
| 63 | +3. fastapi 包发版(`uv publish`,依赖 python 包的最新版本) |
| 64 | +4. flutter 包发版(`flutter pub publish`) |
0 commit comments