架构概述
本文档全面概述了 VTJ 低代码开发平台的系统架构,包括前端组件、后端模块和多平台构建系统之间的协同关系。系统采用现代全栈架构设计,实现了表示层、业务逻辑层和数据持久层的清晰分离,支持多种部署目标的同时保持单一代码库。
系统架构
整体架构设计
VTJ 平台采用分层架构设计,各层职责明确:
- 表示层:基于Vue.js的前端组件,负责用户交互和数据展示
- 业务逻辑层:NestJS实现的后端服务,处理核心业务逻辑
- 数据持久层:ORM框架管理的数据访问,提供持久化存储能力
后端模块依赖关系
后端采用模块化的NestJS架构,各业务模块通过依赖注入实现松耦合:
前后端通信机制
通信流程
前端组件通过RESTful API与后端服务交互,状态管理由Vue组合式API钩子处理:
核心通信模式
模式类型 | 实现方式 | 使用场景 | 技术实现细节 |
---|---|---|---|
请求-响应 | RESTful API | 常规数据查询和操作 | Axios实现,支持拦截器和错误处理 |
服务端推送 | WebSocket | 实时通知和状态更新 | Socket.IO集成,支持房间和广播 |
批量操作 | GraphQL批处理 | 复杂数据聚合请求 | Apollo Server实现,支持查询合并 |
多平台构建架构
平台通过统一的构建系统支持多目标部署,核心架构如下:
跨平台一致性保障
机制 | 实现方式 | 技术优势 |
---|---|---|
统一核心库 | @vtj/core基础包 | 跨平台通用业务逻辑复用 |
平台适配层 | 运行时注入平台特定实现 | 保持核心代码平台无关 |
构建时条件编译 | Vite插件实现平台特性标记 | 按需打包减少体积 |
模块交互与设计模式
服务层依赖管理
后端服务采用分层架构,通过NestJS依赖注入容器管理模块间依赖:
层级 | 职责 | 典型组件 |
---|---|---|
控制器层 | 请求处理和响应格式化 | REST控制器 |
服务层 | 核心业务逻辑实现 | 领域服务 |
仓库层 | 数据访问和持久化 | TypeORM实体仓库 |
基础设施层 | 外部服务集成和工具 | 邮件服务、OSS客户端 |
关键数据流模式
模式名称 | 应用场景 | 技术实现 | 优势特点 |
---|---|---|---|
请求-响应 | API调用 | Axios + NestJS拦截器 | 简单高效,易于调试 |
事件驱动更新 | 状态变更通知 | Vue响应式系统 + Pinia | 解耦组件,提高可维护性 |
分层访问控制 | 权限管理 | RBAC + 权限继承树 | 细粒度控制,支持权限委派 |
多层缓存 | 性能优化 | 内存(LRU) + Redis二级缓存 | 减少数据库压力,加速响应 |
横切关注点处理
关注点 | 解决方案 | 实现技术 | 关键特性 |
---|---|---|---|
身份验证 | OAuth 2.0集成 | Passport.js策略 | 支持Gitee等第三方登录 |
授权管理 | 基于角色的访问控制 | CASL权限库 | 声明式权限规则,上下文感知 |
缓存策略 | 全局缓存模块 | NestJS缓存管理器 | 可配置TTL,命中率监控 |
日志记录 | 集中式日志系统 | Winston + ELK Stack | 结构化日志,支持审计追踪 |
配置管理 | 环境感知配置 | ConfigModule + dotenv | 多环境支持,热重载 |
文件管理 | 对象存储集成 | OSS SDK封装 | 分块上传,访问控制策略 |
异常处理 | 全局异常过滤器 | NestJS异常过滤器 | 统一错误格式,堆栈跟踪 |
平台架构通过清晰的层次划分和模块化设计,实现了高内聚低耦合的系统结构,为低代码开发提供了可靠的技术基础。