Files
MrleeAdmin/doc/01.md
T
2026-08-31 11:33:59 +08:00

8.9 KiB
Raw Blame History

明白,你要的是 backend + frontend 整体架构、功能矩阵与工程治理建议,不限于插件模块。我会先快速梳理现有子系统、基础设施和前后端边界,再给出按投入产出排序的建议,避免泛泛而谈。

我已按项目脚手架约定确认:系统是 Webman 后端、Vue 管理端与 Nuxt 前台三端分层,且已有缓存、队列、定时任务、通知、上传、监控、插件等基础能力。接下来会结合依赖与现有文档补齐“已具备能力”和“真正值得新增”的差距清单。

你说得对,应该从 backend + frontend 作为完整产品与工程体系看,而不是继续聚焦插件。基于现有架构,我按 cross-app-skeleton 的分层规范核对了项目:后端是 Webman + Redis 队列/缓存 + JWT + Casbin + Push + Swagger;管理端为 Vue 3/Vite,前台为 Nuxt 4。基础能力已经不少,下一阶段更值得补的是系统治理、质量保障、运营能力与用户体验闭环。

先做:稳定性、安全与工程治理

  1. 建立完整测试与 CI 门禁 后端已有 tests/ 目录但目前为空,核心流程缺少自动回归保护。建议优先补:

    • 登录、刷新 Token、权限校验;
    • 用户/角色/菜单、文件上传、插件生命周期;
    • Admin API 合约测试;
    • 前端关键页面的 E2E 测试。
      CI 应至少执行 PHP 语法、静态分析、后端测试、管理端 lint + typecheck + build、前台 lint + typecheck + build。

    管理端目前有 lint/build 但没有 typecheck 脚本,建议补齐;前台已经具备 typecheck。
    @frontend/admin/package.json#9-22
    @frontend/web/package.json#14-24
    @backend/tests

  2. 依赖与供应链治理 后端使用 "minimum-stability": "dev",同时 Composer 审计中明确忽略了一条 PhpSpreadsheet 安全公告。这不等于一定有漏洞,但应建立例外到期机制与升级计划。
    建议:

    • 生产环境锁定 composer.lock、pnpm-lock.yaml;
    • 每周运行 Composer / pnpm audit;
    • 对忽略公告记录原因、影响范围、复查日期;
    • 增加 SBOM(软件物料清单)与许可证扫描。
      @backend/composer.json#116-123
  3. 认证、会话与审计中心 现有 JWT、Casbin、限流能力已经具备,适合继续做完整的账号安全中心。
    @backend/composer.json#35-44
    @backend/composer.json#70-76
    建议新增:

    • 多设备会话列表、踢下线、Token 刷新与撤销;
    • 登录日志、异常登录告警、IP/设备指纹;
    • MFA:TOTP、邮件或短信验证码;
    • 管理端敏感操作审计:谁在何时修改了什么,包含修改前后差异;
    • 高风险动作二次确认,例如角色授权、密钥重置、数据删除。
  4. 可观测性与运维诊断 当前已有日志、监控、队列、定时任务、通知等基础目录,建议把它们统一成“系统运行中心”。
    @backend/core
    @backend/config/process.php
    建议:

    • 每个请求生成 traceId,贯穿 API、队列、通知、日志;
    • 健康检查:数据库、Redis、队列积压、磁盘、对象存储、第三方服务;
    • 慢接口/慢 SQL 看板;
    • 队列失败任务可视化、重试、死信处理;
    • 定时任务执行记录、失败告警、手动重跑;
    • 对外提供 /healthz、/readyz,方便容器和负载均衡探测。

提升开发效率:前后端契约与模块化

  1. OpenAPI 驱动的类型安全 API 你已经有 OpenAPI/Swagger,并刚完成 JSON 文档路由优化,这是很适合继续投入的方向。
    @backend/composer.json#78-84
    建议:

    • CI 自动导出 openapi.json;
    • 由文档生成 Admin/Web 的 TypeScript API 类型和请求 SDK;
    • Pull Request 中检测 API Breaking Change;
    • 后端 Schema、Validate、OpenAPI 响应结构保持同源,避免“文档、后端、前端”三份定义漂移。
  2. 前端公共能力收敛 管理端有较完整的 api、components、hooks、store、router、多语言目录,建议继续向平台化演进。
    @frontend/admin/src
    可以新增:

    • 统一的页面状态组件:加载、空状态、权限不足、网络异常、重试;
    • 全局命令面板:搜索菜单、用户、订单、配置与常用操作;
    • 统一的筛选条件持久化与表格列配置;
    • 路由级错误边界与异常上报;
    • API 请求自动取消、请求去重、长列表虚拟滚动;
    • Admin 与 Web 共用类型/接口包,减少两套前端对同一 API 的重复定义。
  3. 明确 Web 前台产品定位 前台基于 Nuxt 4,具备 SSR/SEO 的优势,但现有包名和描述仍接近 Starter。
    @frontend/web/package.json#1-13
    建议明确建设目标:

    • 公开内容:SEO、站点地图、结构化数据、内容缓存;
    • 用户中心:资料、消息、订单、收藏、隐私设置;
    • 运营页:专题、活动、邀请码、落地页配置;
    • 服务端缓存与失效策略,避免所有页面都实时请求后端;
    • 内容发布预览、草稿、定时发布。

产品与后台运营能力

  1. 运营工作台 建议为管理端增加首页工作台,而非只做导航入口:

    • 今日新增、活跃用户、转化、待处理事项;
    • 队列失败、任务失败、异常登录、存储告警;
    • 常用功能快捷入口;
    • 按角色配置仪表盘,运营、财务、客服、技术人员看到不同指标。
  2. 统一消息中心 后端已经有通知服务,前端也有通知 Store,适合补齐端到端消息能力。
    @backend/core/notify
    @frontend/admin/src/store/modules/notify.ts
    建议支持站内信、Push、邮件、短信、Webhook,并加入:

    • 模板管理、变量预览;
    • 通知偏好设置;
    • 已读/未读、批量处理;
    • 失败重试与投递统计;
    • 业务事件订阅,例如审核完成、订单异常、任务失败。
  3. 文件与数据资产中心 后端已具备多存储驱动与 Excel 能力,管理端也有文件 API。
    @backend/composer.json#45-49
    @backend/composer.json#68-68
    @frontend/admin/src/api/tools/files
    可补充:

    • 媒体库:标签、文件夹、引用关系、孤儿文件清理;
    • 断点续传、秒传、图片处理、病毒扫描;
    • 导入导出任务中心:大文件异步导入、错误行下载、重试;
    • 数据脱敏、导出审批、水印与下载审计。
  4. 低代码配置能力,但避免过度泛化 管理端已经有流程设计器、图表、富文本、拖拽等依赖,适合做“受控的业务配置中心”,而不是直接做泛低代码平台。
    @frontend/admin/package.json#60-98
    比较值得新增:

    • 字典与动态表单;
    • 审批流配置;
    • 自定义字段;
    • 业务状态机;
    • 页面级仪表盘配置;
    • Webhook / 自动化规则:事件触发后执行通知、更新字段、调用外部接口。

数据与发布治理

  1. 备份、恢复与数据生命周期 这是生产系统的重要底座:

    • 数据库自动备份与恢复演练;
    • 对象存储备份与保留策略;
    • 软删除回收站、恢复期限;
    • 数据导出与用户数据删除流程;
    • 归档策略:日志、消息、操作记录按时限归档;
    • 敏感数据字段加密与脱敏展示。
  2. 发布中心与 Feature Flag 建议支持配置与功能的灰度发布:

    • 功能开关按用户、角色、租户、环境启用;
    • 后端配置变更版本化、审计、回滚;
    • 前端版本号、构建信息、变更日志展示;
    • 数据库迁移、后端发布、前端发布的发布清单和回滚预案。

建议实施顺序

  1. 测试/CI、依赖审计、权限与操作审计。
  2. TraceId、健康检查、队列与定时任务运行中心。
  3. OpenAPI 自动生成 TypeScript SDK 和接口变更检测。
  4. 文件资产中心、导入导出任务中心、消息中心。
  5. 运营工作台、Feature Flag、备份恢复与数据治理。
  6. 在业务稳定后,再推进审批流、自动化规则、自定义字段等可配置能力。

这套系统当前最大的优势是基础设施已经较齐全;最值得补的不是再堆一批页面,而是将现有能力串成可审计、可测试、可监控、可恢复、可持续发布的完整闭环。