-
Notifications
You must be signed in to change notification settings - Fork 639
Open
Labels
Description
Verify steps
- Tracker 我已经在 Issue Tracker 中找过我要提出的问题
- Need 当前 QD 框架并不包含该功能特性或者还不完善
- Framework 这是 QD 框架应包含的特性,并非模板特性
- Meaningful 我提交的不是无意义的 催促更新或修复 请求
Describe the Feature
当前 QD 框架存在以下问题:
- 代码结构冗杂, 不符合 Python 编程规范, 导致有意愿参与代码开发的同学难以理解框架代码,不利于开源社区共同发展;
- 框架当前采用前后端不分离的方式, 耦合程度极高, 且没有形成 Restful 的前后端接口, 导致修改任意一处代码的时候经常要同步修改前后端多处代码, 难以扩展;
- 框架 UI 已经多年未有较大变化, 当前一站式显示全部任务、模板的方式仅适配 PC Web 端, 且不美观, 前端;
- 框架提供了多种 API 用于 HAR 模板扩展, 这些 API 可以改为插件的形式, 便于开发者提供默认插件, 用户可以根据文档指导自行开发自定义插件式 API, 满足个性化需求;
- 框架当前的 CPU 占用和内存占用相对较高, 需要在新版本中尽量避免这种情况;
- 框架版本号采用 YYYYMMDD 形式, 不利于用户快速获知版本有何主要或者不兼容性变更;
- 无国际化支持.
综上所述, QD2 框架计划拆分为 QD_Core, QD_Cli, QD_Server, QD_Web, 每部分当前为仓库中的一个子分支/子文件夹, 等待开发完成后上线至仓库主分支:
- QD_Core 为框架的核心代码, 技术栈为 Aiohttp + plux, 用于解析 HAR 模板、实现 API 插件式构造、HTTP 请求客户端;
- QD_Cli 为命令行工具,用于命令行式执行HAR模板;
- QD_Server 为框架后端, 技术栈为 FastAPI + ApScheduler + Sqlmodel, 用于连接数据库, 提供 Restful API, 接收并响应前端请求, 定时调度, 消息推送;
- QD_Web 为框架前端, 技术栈为 Vue, 用于与后端通信, 前端用户交互, 实现用户登录, 个人模板管理, 任务管理, 公共模板, 自定义插件管理, 消息推送和记事本等工具管理.
Describe the solution
QD2 框架 MileStone 路线图如下, 预计 2025 年正式上线, 期间会进行灰度测试:
-
QD_Core:
- 解析 HAR 模板
- API 插件式构造
- HTTP 请求客户端
- 优化依赖导入时间
- 创建测试用例
- 创建自动构建和发布模板
- 国际化支持
- 开发/使用文档构建
- QD_Cli:
- 命令行式执行 HAR 模板
-
QD_Server:
- 连接数据库
- Restful API, 接收并响应前端请求
- 用户登录后端接口
- 模板注册/编辑/删除/查询接口
- 任务注册/更新/删除/查询接口
- 公共模板注册/编辑/删除/查询接口
- 自定义插件注册/更新/删除/查询接口
- 消息推送注册/编辑/取消接口
- 消息推送动作设置接口
- 记事本注册/编辑/删除/查询接口
- 定时调度
- 国际化支持
- 开发/使用文档构建
-
QD_Web:
- 前端UI设计
- 后端接口通信
- 用户登录
- 个人模板管理
- 任务管理
- 公共模板
- 自定义插件管理
- 消息推送
- 记事本等工具管理
- 国际化支持
- 开发/使用文档构建
Describe alternatives
- None
Additional context
QD2 开发期间当前框架 master 分支仅进行 Bug 修复, 并预计下半年进行最后 1-2 次发版, 暂不进行 Feature 更新, 等待 QD2 上线后再合并新特性
lilith-rong, sunnyhmz7010, ICEY1W32, Patrick-Ze, dc932dc and 2 morewxyShine