Files
WonderQ-Project/docs/decisions.md
2026-08-11 19:19:11 +08:00

4.1 KiB
Raw Blame History

WonderQ 当前技术与文档决策

本文档只记录当前有效决策,避免非当前技术路径干扰后续开发。

DEC-001后端采用 Python + FastAPI 技术栈

状态:已接受

当前后端服务位于 WonderQ-Admin,技术栈为 Python、FastAPI、SQLAlchemy 2、Alembic、PostgreSQL、JWT 和 Pydantic。

原因:

  • 当前代码和文档已经围绕该技术栈落地。
  • Alembic 负责数据库迁移,适合继续演进 PostgreSQL 结构。
  • FastAPI 与 Pydantic 能清晰表达 Public API 和 Admin API 的请求响应契约。

影响:

  • 后端文档以 backend-api-service.mdbackend-plan.md 为准。
  • 不在当前文档中保留其它后端技术栈规划。

DEC-002Public API 与 Admin API 分离

状态:已接受

WonderQ-MiniAPP 只对接 /api/public/...,不依赖后台鉴权;WonderQ-Admin-UI 只对接 /api/admin/...,除登录外均需要后台登录态。

原因:

  • 前台展示和后台运营权限边界不同。
  • Public API 需要过滤未发布或未启用内容。
  • Admin API 需要返回运营维护所需的完整配置和草稿数据。

影响:

  • public-api.md 是 MiniAPP 对接后端的唯一 Public API 契约。
  • admin-api-requirements.md 是 Admin UI 对接后端的主契约。

DEC-003页面模块 CRUD 细节以 module-config-api.md 为准

状态:已接受

首页轮播、目的地、地图、主题卡、特价优惠、精选线路、特色酒店、万趣用车和更多服务的新增、更新、删除、排序细节,统一维护在 module-config-api.md

原因:

  • 页面模块字段多、规则细,放在 Admin API 主文档里会造成重复。
  • 管理前端和后端实现都需要同一份细粒度契约。

影响:

  • admin-api-requirements.md 只保留站点配置主接口和模块入口说明。
  • 任何页面模块字段、状态码、排序、媒体上传规则变化,都先更新 module-config-api.md

DEC-004文档保持扁平结构

状态:已接受

docs/ 目录不再按子项目分目录,所有当前文档直接放在 docs/ 根目录。

原因:

  • 当前项目只有少量关键文档,扁平结构查找更快。
  • 三端联调需要跨项目阅读,按子项目分目录会增加跳转成本。

影响:

  • docs/README.md 是唯一文档入口。
  • 新文档必须在 docs/README.md 登记。

DEC-005当前文档只服务现行架构

状态:已接受

当前文档集中只保留服务现行架构和三端联调的内容。

原因:

  • 非当前技术路径会干扰三端当前开发判断。
  • 当前任务目标是提高后端、管理前端和 MiniAPP 的开发进度,文档需要服务现行架构。

影响:

  • 新成员只需要阅读当前文档即可理解现行协作方式。
  • 如未来需要记录重大调整,直接新增当前决策或更新本文件。

DEC-006MiniAPP 采用简约、内容优先的移动端视觉风格

状态:已接受

WonderQ-MiniAPP 的 H5 与微信小程序前台统一采用扁平、低装饰的简约风格。内容图片和信息层级优先于装饰效果,交互状态通过颜色、边框和轻量动效表达。

原因:

  • 旅行内容页需要让用户快速扫描目的地、线路和服务入口,复杂背景和重装饰会削弱信息层级。
  • H5 与小程序运行设备性能差异较大,减少渐变、模糊和重阴影可以降低渲染负担并提高跨端一致性。
  • 固定导航采用稳定布局,避免浮动徽章和缩放动画造成视觉干扰或布局跳动。

约定:

  • 基础色使用白色、浅灰和低饱和绿色;主操作使用绿色,价格等业务强调色保持低饱和暖色。
  • 卡片、输入框和按钮优先使用 8-12px 圆角、细边框和轻阴影;不新增大面积渐变、装饰性光晕或重阴影。
  • 复用 WonderQ-MiniAPP/src/app.css--wq-* 设计变量及共享组件样式,页面局部样式不得重新建立一套颜色和阴影体系。

影响:

  • 新增或调整 MiniAPP 页面时,应先复用共享样式,再补充页面特有布局。
  • 如确需引入明显装饰效果,需要在页面需求中说明其内容价值,并同步更新本决策。