8.9 KiB
明白,你要的是 backend + frontend 整体架构、功能矩阵与工程治理建议,不限于插件模块。我会先快速梳理现有子系统、基础设施和前后端边界,再给出按投入产出排序的建议,避免泛泛而谈。
我已按项目脚手架约定确认:系统是 Webman 后端、Vue 管理端与 Nuxt 前台三端分层,且已有缓存、队列、定时任务、通知、上传、监控、插件等基础能力。接下来会结合依赖与现有文档补齐“已具备能力”和“真正值得新增”的差距清单。
你说得对,应该从 backend + frontend 作为完整产品与工程体系看,而不是继续聚焦插件。基于现有架构,我按 cross-app-skeleton 的分层规范核对了项目:后端是 Webman + Redis 队列/缓存 + JWT + Casbin + Push + Swagger;管理端为 Vue 3/Vite,前台为 Nuxt 4。基础能力已经不少,下一阶段更值得补的是系统治理、质量保障、运营能力与用户体验闭环。
先做:稳定性、安全与工程治理
-
建立完整测试与 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 -
依赖与供应链治理 后端使用
"minimum-stability": "dev",同时 Composer 审计中明确忽略了一条PhpSpreadsheet安全公告。这不等于一定有漏洞,但应建立例外到期机制与升级计划。
建议:- 生产环境锁定
composer.lock、pnpm-lock.yaml; - 每周运行 Composer / pnpm audit;
- 对忽略公告记录原因、影响范围、复查日期;
- 增加 SBOM(软件物料清单)与许可证扫描。
@backend/composer.json#116-123
- 生产环境锁定
-
认证、会话与审计中心 现有 JWT、Casbin、限流能力已经具备,适合继续做完整的账号安全中心。
@backend/composer.json#35-44
@backend/composer.json#70-76
建议新增:- 多设备会话列表、踢下线、Token 刷新与撤销;
- 登录日志、异常登录告警、IP/设备指纹;
- MFA:TOTP、邮件或短信验证码;
- 管理端敏感操作审计:谁在何时修改了什么,包含修改前后差异;
- 高风险动作二次确认,例如角色授权、密钥重置、数据删除。
-
可观测性与运维诊断 当前已有日志、监控、队列、定时任务、通知等基础目录,建议把它们统一成“系统运行中心”。
@backend/core
@backend/config/process.php
建议:- 每个请求生成
traceId,贯穿 API、队列、通知、日志; - 健康检查:数据库、Redis、队列积压、磁盘、对象存储、第三方服务;
- 慢接口/慢 SQL 看板;
- 队列失败任务可视化、重试、死信处理;
- 定时任务执行记录、失败告警、手动重跑;
- 对外提供
/healthz、/readyz,方便容器和负载均衡探测。
- 每个请求生成
提升开发效率:前后端契约与模块化
-
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 响应结构保持同源,避免“文档、后端、前端”三份定义漂移。
- CI 自动导出
-
前端公共能力收敛 管理端有较完整的 api、components、hooks、store、router、多语言目录,建议继续向平台化演进。
@frontend/admin/src
可以新增:- 统一的页面状态组件:加载、空状态、权限不足、网络异常、重试;
- 全局命令面板:搜索菜单、用户、订单、配置与常用操作;
- 统一的筛选条件持久化与表格列配置;
- 路由级错误边界与异常上报;
- API 请求自动取消、请求去重、长列表虚拟滚动;
- Admin 与 Web 共用类型/接口包,减少两套前端对同一 API 的重复定义。
-
明确 Web 前台产品定位 前台基于 Nuxt 4,具备 SSR/SEO 的优势,但现有包名和描述仍接近 Starter。
@frontend/web/package.json#1-13
建议明确建设目标:- 公开内容:SEO、站点地图、结构化数据、内容缓存;
- 用户中心:资料、消息、订单、收藏、隐私设置;
- 运营页:专题、活动、邀请码、落地页配置;
- 服务端缓存与失效策略,避免所有页面都实时请求后端;
- 内容发布预览、草稿、定时发布。
产品与后台运营能力
-
运营工作台 建议为管理端增加首页工作台,而非只做导航入口:
- 今日新增、活跃用户、转化、待处理事项;
- 队列失败、任务失败、异常登录、存储告警;
- 常用功能快捷入口;
- 按角色配置仪表盘,运营、财务、客服、技术人员看到不同指标。
-
统一消息中心 后端已经有通知服务,前端也有通知 Store,适合补齐端到端消息能力。
@backend/core/notify
@frontend/admin/src/store/modules/notify.ts
建议支持站内信、Push、邮件、短信、Webhook,并加入:- 模板管理、变量预览;
- 通知偏好设置;
- 已读/未读、批量处理;
- 失败重试与投递统计;
- 业务事件订阅,例如审核完成、订单异常、任务失败。
-
文件与数据资产中心 后端已具备多存储驱动与 Excel 能力,管理端也有文件 API。
@backend/composer.json#45-49
@backend/composer.json#68-68
@frontend/admin/src/api/tools/files
可补充:- 媒体库:标签、文件夹、引用关系、孤儿文件清理;
- 断点续传、秒传、图片处理、病毒扫描;
- 导入导出任务中心:大文件异步导入、错误行下载、重试;
- 数据脱敏、导出审批、水印与下载审计。
-
低代码配置能力,但避免过度泛化 管理端已经有流程设计器、图表、富文本、拖拽等依赖,适合做“受控的业务配置中心”,而不是直接做泛低代码平台。
@frontend/admin/package.json#60-98
比较值得新增:- 字典与动态表单;
- 审批流配置;
- 自定义字段;
- 业务状态机;
- 页面级仪表盘配置;
- Webhook / 自动化规则:事件触发后执行通知、更新字段、调用外部接口。
数据与发布治理
-
备份、恢复与数据生命周期 这是生产系统的重要底座:
- 数据库自动备份与恢复演练;
- 对象存储备份与保留策略;
- 软删除回收站、恢复期限;
- 数据导出与用户数据删除流程;
- 归档策略:日志、消息、操作记录按时限归档;
- 敏感数据字段加密与脱敏展示。
-
发布中心与 Feature Flag 建议支持配置与功能的灰度发布:
- 功能开关按用户、角色、租户、环境启用;
- 后端配置变更版本化、审计、回滚;
- 前端版本号、构建信息、变更日志展示;
- 数据库迁移、后端发布、前端发布的发布清单和回滚预案。
建议实施顺序
- 测试/CI、依赖审计、权限与操作审计。
- TraceId、健康检查、队列与定时任务运行中心。
- OpenAPI 自动生成 TypeScript SDK 和接口变更检测。
- 文件资产中心、导入导出任务中心、消息中心。
- 运营工作台、Feature Flag、备份恢复与数据治理。
- 在业务稳定后,再推进审批流、自动化规则、自定义字段等可配置能力。
这套系统当前最大的优势是基础设施已经较齐全;最值得补的不是再堆一批页面,而是将现有能力串成可审计、可测试、可监控、可恢复、可持续发布的完整闭环。