Skip to content

Commit 869db95

Browse files
committed
docs: add SDK alignment guide for dart/python/fastapi/flutter
1 parent a586455 commit 869db95

1 file changed

Lines changed: 64 additions & 0 deletions

File tree

docs/dev/index.md

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
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

Comments
 (0)