Files
2026-08-31 11:33:59 +08:00

156 lines
8.9 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
明白,你要的是 `backend + frontend` 整体架构、功能矩阵与工程治理建议,不限于插件模块。我会先快速梳理现有子系统、基础设施和前后端边界,再给出按投入产出排序的建议,避免泛泛而谈。
我已按项目脚手架约定确认:系统是 Webman 后端、Vue 管理端与 Nuxt 前台三端分层,且已有缓存、队列、定时任务、通知、上传、监控、插件等基础能力。接下来会结合依赖与现有文档补齐“已具备能力”和“真正值得新增”的差距清单。
你说得对,应该从 `backend + frontend` 作为完整产品与工程体系看,而不是继续聚焦插件。基于现有架构,我按 `cross-app-skeleton` 的分层规范核对了项目:后端是 Webman + Redis 队列/缓存 + JWT + Casbin + Push + Swagger;管理端为 Vue 3/Vite,前台为 Nuxt 4。基础能力已经不少,下一阶段更值得补的是**系统治理、质量保障、运营能力与用户体验闭环**。
**先做:稳定性、安全与工程治理**
1. **建立完整测试与 CI 门禁**
后端已有 [tests/](cci:9://file:///f:/WWW/MrleeAdmin/backend/tests:0:0-0:0) 目录但目前为空,核心流程缺少自动回归保护。建议优先补:
- 登录、刷新 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](cci:7://file:///f:/WWW/MrleeAdmin/frontend/web/pnpm-lock.yaml:0:0-0:0);
- 每周运行 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`,方便容器和负载均衡探测。
**提升开发效率:前后端契约与模块化**
5. **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 响应结构保持同源,避免“文档、后端、前端”三份定义漂移。
6. **前端公共能力收敛**
管理端有较完整的 [api](cci:9://file:///f:/WWW/MrleeAdmin/backend/app/api:0:0-0:0)、[components](cci:9://file:///f:/WWW/MrleeAdmin/frontend/admin/src/components:0:0-0:0)、[hooks](cci:9://file:///f:/WWW/MrleeAdmin/frontend/admin/src/hooks:0:0-0:0)、[store](cci:9://file:///f:/WWW/MrleeAdmin/frontend/admin/src/store:0:0-0:0)、[router](cci:9://file:///f:/WWW/MrleeAdmin/frontend/admin/src/router:0:0-0:0)、多语言目录,建议继续向平台化演进。
@frontend/admin/src
可以新增:
- 统一的页面状态组件:加载、空状态、权限不足、网络异常、重试;
- 全局命令面板:搜索菜单、用户、订单、配置与常用操作;
- 统一的筛选条件持久化与表格列配置;
- 路由级错误边界与异常上报;
- API 请求自动取消、请求去重、长列表虚拟滚动;
- Admin 与 Web 共用类型/接口包,减少两套前端对同一 API 的重复定义。
7. **明确 Web 前台产品定位**
前台基于 Nuxt 4,具备 SSR/SEO 的优势,但现有包名和描述仍接近 Starter。
@frontend/web/package.json#1-13
建议明确建设目标:
- 公开内容:SEO、站点地图、结构化数据、内容缓存;
- 用户中心:资料、消息、订单、收藏、隐私设置;
- 运营页:专题、活动、邀请码、落地页配置;
- 服务端缓存与失效策略,避免所有页面都实时请求后端;
- 内容发布预览、草稿、定时发布。
**产品与后台运营能力**
8. **运营工作台**
建议为管理端增加首页工作台,而非只做导航入口:
- 今日新增、活跃用户、转化、待处理事项;
- 队列失败、任务失败、异常登录、存储告警;
- 常用功能快捷入口;
- 按角色配置仪表盘,运营、财务、客服、技术人员看到不同指标。
9. **统一消息中心**
后端已经有通知服务,前端也有通知 Store,适合补齐端到端消息能力。
@backend/core/notify
@frontend/admin/src/store/modules/notify.ts
建议支持站内信、Push、邮件、短信、Webhook,并加入:
- 模板管理、变量预览;
- 通知偏好设置;
- 已读/未读、批量处理;
- 失败重试与投递统计;
- 业务事件订阅,例如审核完成、订单异常、任务失败。
10. **文件与数据资产中心**
后端已具备多存储驱动与 Excel 能力,管理端也有文件 API。
@backend/composer.json#45-49
@backend/composer.json#68-68
@frontend/admin/src/api/tools/files
可补充:
- 媒体库:标签、文件夹、引用关系、孤儿文件清理;
- 断点续传、秒传、图片处理、病毒扫描;
- 导入导出任务中心:大文件异步导入、错误行下载、重试;
- 数据脱敏、导出审批、水印与下载审计。
11. **低代码配置能力,但避免过度泛化**
管理端已经有流程设计器、图表、富文本、拖拽等依赖,适合做“受控的业务配置中心”,而不是直接做泛低代码平台。
@frontend/admin/package.json#60-98
比较值得新增:
- 字典与动态表单;
- 审批流配置;
- 自定义字段;
- 业务状态机;
- 页面级仪表盘配置;
- Webhook / 自动化规则:事件触发后执行通知、更新字段、调用外部接口。
**数据与发布治理**
12. **备份、恢复与数据生命周期**
这是生产系统的重要底座:
- 数据库自动备份与恢复演练;
- 对象存储备份与保留策略;
- 软删除回收站、恢复期限;
- 数据导出与用户数据删除流程;
- 归档策略:日志、消息、操作记录按时限归档;
- 敏感数据字段加密与脱敏展示。
13. **发布中心与 Feature Flag**
建议支持配置与功能的灰度发布:
- 功能开关按用户、角色、租户、环境启用;
- 后端配置变更版本化、审计、回滚;
- 前端版本号、构建信息、变更日志展示;
- 数据库迁移、后端发布、前端发布的发布清单和回滚预案。
**建议实施顺序**
1. 测试/CI、依赖审计、权限与操作审计。
2. TraceId、健康检查、队列与定时任务运行中心。
3. OpenAPI 自动生成 TypeScript SDK 和接口变更检测。
4. 文件资产中心、导入导出任务中心、消息中心。
5. 运营工作台、Feature Flag、备份恢复与数据治理。
6. 在业务稳定后,再推进审批流、自动化规则、自定义字段等可配置能力。
这套系统当前最大的优势是基础设施已经较齐全;最值得补的不是再堆一批页面,而是将现有能力串成**可审计、可测试、可监控、可恢复、可持续发布**的完整闭环。