46 lines
1.3 KiB
Markdown
46 lines
1.3 KiB
Markdown
---
|
||
doc_id: DOC-TA-000
|
||
title: 技术选型说明
|
||
version: 0.1.0
|
||
status: reviewed
|
||
owners:
|
||
- 林然
|
||
upstream:
|
||
- ../business-architecture/01-scope-and-goals.md
|
||
downstream:
|
||
- ./01-runtime-topology.md
|
||
- ./01-runtime-components.csv
|
||
updated_at: 2026-03-23
|
||
---
|
||
|
||
# 技术选型说明
|
||
|
||
详细选型清单见 `./00-technology-selection.csv`。
|
||
|
||
## 核心决策
|
||
|
||
### 后端:Python 3.12 + FastAPI + uv
|
||
- 文件解析(CSV/MD/YAML/OpenAPI)是核心功能,Python 生态在这方面最成熟
|
||
- FastAPI 提供异步支持和自动 OpenAPI 文档
|
||
- uv 替代 pip+venv,依赖管理更快更可靠
|
||
|
||
### 前端:Vue 3 + TypeScript + Vite + Pinia
|
||
- 组合式 API 适合模块化的组件结构
|
||
- TypeScript 提供类型安全
|
||
- Pinia 作为 Vue 3 官方推荐的状态管理方案
|
||
|
||
### 关系图:D3.js
|
||
- 需要高度定制的可下钻分组图
|
||
- D3.js 灵活度最高,可以精确控制节点布局、分组、交互
|
||
- 学习曲线较陡,但这个项目的图交互是核心功能,值得投入
|
||
|
||
### 部署:Docker Compose
|
||
- 两个容器:Nginx(前端+反代)+ Python(后端)
|
||
- 无数据库容器
|
||
- Volume 挂载设计文件目录和代码仓库目录
|
||
|
||
### 不使用数据库
|
||
- 设计文件本身就是 single source of truth
|
||
- 项目注册用 JSON 文件
|
||
- 关系图和扫描结果是运行时计算,不需要持久化
|