Skip to content

技术栈

本文档详细介绍了 Terminal Electron 项目使用的技术栈,包括前端、后端、开发工具等各个方面的技术选择。

前端技术栈

核心框架

Electron

  • 版本: 最新稳定版
  • 用途: 跨平台桌面应用框架
  • 优势:
    • 使用 Web 技术构建桌面应用
    • 支持 Windows、macOS、Linux
    • 丰富的原生 API 访问能力
    • 活跃的社区和生态系统

React

  • 版本: 18.x
  • 用途: 用户界面库
  • 特性:
    • 函数组件和 Hooks
    • 虚拟 DOM 和高效渲染
    • 组件化开发
    • TypeScript 支持

TypeScript

  • 版本: 5.x
  • 用途: 类型安全的 JavaScript 超集
  • 优势:
    • 静态类型检查
    • 更好的 IDE 支持
    • 减少运行时错误
    • 提高代码可维护性

UI 和样式

Tailwind CSS

  • 版本: 3.x
  • 用途: 实用优先的 CSS 框架
  • 特性:
    • 原子化 CSS 类
    • 响应式设计
    • 暗色模式支持
    • 高度可定制

shadcn/ui

  • 用途: 基于 Radix UI 的组件库
  • 优势:
    • 可访问性优先
    • 高度可定制
    • TypeScript 支持
    • 现代化设计

终端模拟器

xterm.js

  • 版本: 5.x
  • 用途: 终端模拟器
  • 特性:
    • 高性能渲染
    • 丰富的终端功能
    • 插件化架构
    • 跨平台兼容

状态管理

MobX

  • 版本: 6.x
  • 用途: 状态管理库
  • 特性:
    • 响应式状态管理
    • 简单易用的 API
    • 与 React 良好集成
    • 支持 TypeScript

构建工具

Vite

  • 版本: 5.x
  • 用途: 前端构建工具
  • 优势:
    • 极快的开发服务器启动
    • 热模块替换 (HMR)
    • 优化的生产构建
    • 丰富的插件生态系统

Electron Vite

  • 用途: Electron 专用构建工具
  • 特性:
    • 主进程和渲染进程分离构建
    • 开发时热重载
    • 生产环境优化
    • 多平台打包支持

后端技术栈

核心框架

NestJS

  • 版本: 10.x
  • 用途: Node.js 企业级框架
  • 特性:
    • 模块化架构
    • 依赖注入
    • 装饰器模式
    • 内置 TypeScript 支持
    • 丰富的中间件和守卫

Node.js

  • 版本: 18.x LTS
  • 用途: JavaScript 运行时
  • 优势:
    • 高性能异步 I/O
    • 丰富的 npm 生态系统
    • 跨平台支持
    • 活跃的社区

数据库

SQLite

  • 版本: 3.x
  • 用途: 轻量级关系型数据库
  • 优势:
    • 零配置
    • 单文件存储
    • 高性能
    • 跨平台兼容
    • 适合桌面应用

TypeORM

  • 版本: 0.3.x
  • 用途: TypeScript ORM
  • 特性:
    • 实体关系映射
    • 查询构建器
    • 迁移支持
    • TypeScript 集成
    • 多种数据库支持

认证和安全

JWT (JSON Web Tokens)

  • 用途: 无状态认证
  • 优势:
    • 无状态设计
    • 跨域支持
    • 自包含信息
    • 易于扩展

Passport.js

  • 用途: 认证中间件
  • 特性:
    • 多种认证策略
    • 易于集成
    • 高度可定制
    • 与 NestJS 良好集成

数据验证

class-validator

  • 用途: 基于装饰器的验证
  • 特性:
    • 声明式验证
    • 丰富的验证规则
    • TypeScript 支持
    • 与 NestJS 集成

class-transformer

  • 用途: 对象序列化/反序列化
  • 特性:
    • 类型转换
    • 属性排除
    • 嵌套对象处理
    • 与 class-validator 配合

开发工具

包管理

Yarn

  • 版本: 1.22.x
  • 用途: 包管理器
  • 优势:
    • 更快的安装速度
    • 确定性依赖锁定
    • Workspaces 支持
    • 更好的安全性

构建系统

Turborepo

  • 版本: 1.x
  • 用途: 高性能构建系统
  • 特性:
    • 增量构建
    • 并行执行
    • 缓存优化
    • Monorepo 支持

代码质量

ESLint

  • 用途: JavaScript/TypeScript 代码检查
  • 配置:
    • TypeScript 规则
    • React 规则
    • 代码风格统一
    • 错误预防

Prettier

  • 用途: 代码格式化
  • 特性:
    • 统一的代码风格
    • 自动格式化
    • 与 ESLint 集成
    • 支持多种语言

版本控制

Git

  • 用途: 版本控制系统
  • 工作流:
    • Git Flow
    • 功能分支开发
    • 代码审查
    • 自动化部署

部署和运维

容器化

Docker

  • 用途: 容器化部署
  • 优势:
    • 环境一致性
    • 快速部署
    • 资源隔离
    • 易于扩展

Docker Compose

  • 用途: 多容器应用编排
  • 特性:
    • 服务定义
    • 网络配置
    • 数据卷管理
    • 环境变量配置

构建和打包

Electron Builder

  • 用途: Electron 应用打包
  • 特性:
    • 多平台打包
    • 自动更新支持
    • 代码签名
    • 安装程序生成

Vite

  • 用途: 前端资源构建
  • 特性:
    • 快速构建
    • 代码分割
    • 资源优化
    • 开发服务器

测试工具

单元测试

Jest

  • 用途: JavaScript 测试框架
  • 特性:
    • 零配置
    • 快照测试
    • 模拟功能
    • 覆盖率报告

@testing-library/react

  • 用途: React 组件测试
  • 特性:
    • 用户行为测试
    • 可访问性测试
    • 组件集成测试
    • 最佳实践

集成测试

Supertest

  • 用途: HTTP 接口测试
  • 特性:
    • API 测试
    • 请求链测试
    • 响应验证
    • 与 Jest 集成

文档工具

文档站点

VitePress

  • 版本: 1.x
  • 用途: 静态文档站点
  • 特性:
    • Markdown 支持
    • Vue 组件集成
    • 主题定制
    • 搜索功能

API 文档

OpenAPI/Swagger

  • 用途: API 文档生成
  • 特性:
    • 自动文档生成
    • 交互式测试
    • 类型定义
    • 与 NestJS 集成

性能优化

前端优化

代码分割

  • 路由级别分割
  • 组件懒加载
  • 第三方库分离

资源优化

  • 图片压缩
  • CSS/JS 压缩
  • 缓存策略

后端优化

数据库优化

  • 索引优化
  • 查询优化
  • 连接池管理

缓存策略

  • 内存缓存
  • 查询缓存
  • 静态资源缓存

安全考虑

前端安全

  • XSS 防护
  • CSRF 防护
  • 输入验证
  • 敏感信息保护

后端安全

  • 身份认证
  • 权限控制
  • 数据验证
  • SQL 注入防护

监控和日志

日志管理

  • 结构化日志
  • 日志级别
  • 错误追踪
  • 性能监控

错误处理

  • 全局错误处理
  • 用户友好错误信息
  • 错误上报
  • 调试信息

技术选型理由

为什么选择 Electron?

  • 跨平台兼容性
  • Web 技术栈复用
  • 丰富的原生 API
  • 活跃的社区

为什么选择 React?

  • 组件化开发
  • 虚拟 DOM 性能
  • 丰富的生态系统
  • TypeScript 支持

为什么选择 NestJS?

  • 企业级架构
  • 模块化设计
  • 内置 TypeScript 支持
  • 丰富的中间件

为什么选择 SQLite?

  • 零配置部署
  • 单文件存储
  • 高性能
  • 适合桌面应用

技术债务管理

代码质量

  • 定期代码审查
  • 自动化测试
  • 重构计划
  • 文档更新

依赖管理

  • 定期更新依赖
  • 安全漏洞检查
  • 版本兼容性
  • 性能影响评估

未来技术规划

短期目标

  • 完善测试覆盖
  • 性能优化
  • 用户体验改进
  • 文档完善

长期目标

  • 微服务架构
  • 云原生部署
  • AI 功能集成
  • 移动端支持

Released under the MIT License.