Skip to content

[Feature] QD2 路线图 #539

@a76yyyy

Description

@a76yyyy

Verify steps

  • Tracker 我已经在 Issue Tracker 中找过我要提出的问题
  • Need 当前 QD 框架并不包含该功能特性或者还不完善
  • Framework 这是 QD 框架应包含的特性,并非模板特性
  • Meaningful 我提交的不是无意义的 催促更新或修复 请求

Describe the Feature

当前 QD 框架存在以下问题:

  1. 代码结构冗杂, 不符合 Python 编程规范, 导致有意愿参与代码开发的同学难以理解框架代码,不利于开源社区共同发展;
  2. 框架当前采用前后端不分离的方式, 耦合程度极高, 且没有形成 Restful 的前后端接口, 导致修改任意一处代码的时候经常要同步修改前后端多处代码, 难以扩展;
  3. 框架 UI 已经多年未有较大变化, 当前一站式显示全部任务、模板的方式仅适配 PC Web 端, 且不美观, 前端;
  4. 框架提供了多种 API 用于 HAR 模板扩展, 这些 API 可以改为插件的形式, 便于开发者提供默认插件, 用户可以根据文档指导自行开发自定义插件式 API, 满足个性化需求;
  5. 框架当前的 CPU 占用和内存占用相对较高, 需要在新版本中尽量避免这种情况;
  6. 框架版本号采用 YYYYMMDD 形式, 不利于用户快速获知版本有何主要或者不兼容性变更;
  7. 无国际化支持.

综上所述, 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 上线后再合并新特性

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions