Skip to content
个人作品推荐
栾媛爱动物
播放动物叫声趣味微信小程序
栾媛爱动物微信小程序
微信扫码体验

LyEdu 技术栈与架构

编辑日期:2026-02-26

技术选型

LyEdu 项目采用了现代化的技术栈,以下是主要技术组件的选型:

前端技术

  • 框架:Vue 3
  • 语言:TypeScript
  • UI 库:Element Plus
  • 状态管理:Pinia
  • 路由:Vue Router
  • 构建工具:Vite
  • HTTP 客户端:Axios
  • 图表库:ECharts
  • 移动端:uni-app x

后端技术

  • 框架:Spring Boot 4
  • 语言:Java 17
  • 数据库:PostgreSQL
  • 缓存:Redis
  • 认证:JWT + Feishu OAuth
  • ORM:MyBatis-Plus
  • API 文档:SpringDoc OpenAPI

部署与运维

  • 容器化:Docker
  • 编排:Docker Compose
  • CI/CD:GitHub Actions
  • 监控:Prometheus + Grafana

系统架构

LyEdu 采用分层架构设计,主要包括以下层次:

1. 前端层

  • PC 端:基于 Vue 3 + TypeScript + Element Plus 的单页应用
  • 移动端:基于 uni-app x 的跨平台应用
  • 前端公共组件:可复用的 UI 组件和业务组件

2. API 层

  • RESTful API:提供标准化的接口
  • 认证授权:基于 JWT 和 Feishu OAuth 的认证机制
  • 请求处理:参数校验、日志记录、异常处理

3. 业务逻辑层

  • 服务层:封装核心业务逻辑
  • 领域模型:基于 DDD (Domain-Driven Design) 的领域模型
  • 业务规则:课程管理、学习跟踪、考试评估等业务规则

4. 数据访问层

  • 数据持久化:与数据库的交互
  • 缓存策略:热点数据缓存
  • 数据校验:数据完整性和一致性校验

5. 基础设施层

  • 配置管理:环境配置和应用配置
  • 日志管理:系统日志和业务日志
  • 监控告警:系统运行状态监控
  • 第三方集成:Feishu 集成、文件存储等

技术特点

1. 前后端分离

  • 前端和后端完全分离,独立开发和部署
  • 使用 RESTful API 进行通信
  • 支持多端应用(PC 端和移动端)

2. 微服务架构

  • 采用微服务架构,服务之间通过 API 通信
  • 支持服务的独立部署和扩展
  • 提高系统的可维护性和可扩展性

3. 领域驱动设计

  • 采用 DDD (Domain-Driven Design) 思想
  • 构建清晰的领域模型和业务边界
  • 提高代码的可读性和可维护性

4. 多平台支持

  • 支持 PC 端和移动端访问
  • 移动端采用 uni-app x,支持 iOS、Android 和小程序

5. 第三方集成

  • 集成 Feishu (Lark) 登录和地址簿同步
  • 支持多种文件存储方案
  • 提供开放 API,支持与其他系统集成

技术架构图

+------------------------------------------+
|               前端应用                    |
|  Vue 3 + TypeScript + Element Plus       |
|            (PC 端)                       |
+------------------------------------------+
                    |
+------------------------------------------+
|               前端应用                    |
|         uni-app x (移动端)                |
+------------------------------------------+
                    |
+------------------------------------------+
|               API 网关                    |
|  认证授权、请求路由、限流熔断              |
+------------------------------------------+
                    |
+-------------------+----------------------+
|                   |                      |
+---------+---------+         +------------+
|         |         |         |            |
+---------v---------+         v            v
| 课程管理服务     | 用户服务    学习跟踪服务
+------------------+----------------------+
|                  |                      |
+------------------+----------------------+
                    |
+------------------------------------------+
|               数据存储                    |
| PostgreSQL + Redis + 文件存储            |
+------------------------------------------+
                    |
+------------------------------------------+
|               第三方集成                  |
|      Feishu (Lark) + 其他系统             |
+------------------------------------------+

技术栈选择理由

前端技术选择

  • Vue 3:响应式框架,性能优异,生态成熟
  • TypeScript:类型安全,提高代码质量和开发效率
  • Element Plus:组件丰富,文档完善,适合企业级应用
  • uni-app x:跨平台开发,一套代码多端运行
  • Vite:快速的构建工具,提升开发体验

后端技术选择

  • Spring Boot 4:Java 生态的主流框架,稳定性好,生态丰富
  • Java 17:长期支持版本,提供现代化的语言特性
  • PostgreSQL:功能强大的开源关系型数据库,支持复杂查询和事务
  • Redis:高性能缓存,适合存储会话和热点数据
  • MyBatis-Plus:简化 MyBatis 开发,提高开发效率

部署与运维选择

  • Docker:容器化部署,简化环境配置
  • Docker Compose:多容器应用编排,方便本地开发和测试
  • GitHub Actions:自动化 CI/CD 流程,提高开发效率
  • Prometheus + Grafana:监控系统运行状态,及时发现问题

技术挑战与解决方案

1. 多端适配

  • 挑战:不同设备和屏幕尺寸的适配
  • 解决方案:使用响应式设计,针对不同端优化 UI

2. 性能优化

  • 挑战:大量课程内容和视频资源的加载性能
  • 解决方案:使用缓存策略,优化资源加载,采用懒加载技术

3. 安全性

  • 挑战:保护用户数据和系统安全
  • 解决方案:实现多层次的安全防护,包括认证、授权、加密等

4. 可扩展性

  • 挑战:系统需要支持不断增长的用户和内容
  • 解决方案:采用微服务架构,支持水平扩展

5. 第三方集成

  • 挑战:与 Feishu 等第三方系统的集成
  • 解决方案:使用标准化的 API,实现松耦合的集成方式

未来技术规划

1. 人工智能应用

  • 引入 AI 辅助教学,提供个性化学习推荐
  • 开发智能题库和自动评分系统
  • 实现智能客服,解答用户疑问

2. 大数据分析

  • 构建学习行为分析系统,提供数据洞察
  • 开发教学效果评估模型,优化教学策略
  • 实现预测性分析,提前识别学习风险

3. 云原生技术

  • 迁移到云原生架构,提高系统的弹性和可靠性
  • 使用 Kubernetes 进行容器编排
  • 采用 Serverless 技术,降低运维成本

4. 5G 应用

  • 利用 5G 网络的高带宽和低延迟,提供更好的视频学习体验
  • 开发基于 5G 的实时互动教学功能

技术文档