156 lines
3.4 KiB
Markdown
156 lines
3.4 KiB
Markdown
# 技术栈文档
|
||
|
||
> **文档版本**: v1.0.0
|
||
> **创建日期**: 2026-05-25
|
||
> **适用范围**: FischerX 项目开发人员
|
||
|
||
## 目录
|
||
|
||
- [前端技术栈](#前端技术栈)
|
||
- [后端技术栈](#后端技术栈)
|
||
- [基础设施](#基础设施)
|
||
- [技术选型理由](#技术选型理由)
|
||
|
||
---
|
||
|
||
## 前端技术栈
|
||
|
||
### 核心框架
|
||
|
||
| 技术 | 版本 | 用途 |
|
||
|-----|------|------|
|
||
| Next.js | 16+ | React 框架,支持 SSR/SSG |
|
||
| React | 18+ | UI 库 |
|
||
| TypeScript | 5+ | 类型安全的 JavaScript |
|
||
|
||
### UI 组件
|
||
|
||
| 技术 | 版本 | 用途 |
|
||
|-----|------|------|
|
||
| Tailwind CSS | 4+ | 原子化 CSS 框架 |
|
||
| Shadcn UI | latest | 基于 Radix UI 的组件库 |
|
||
| Lucide React | latest | 图标库 |
|
||
|
||
### 状态管理
|
||
|
||
| 技术 | 版本 | 用途 |
|
||
|-----|------|------|
|
||
| Zustand | latest | 轻量级状态管理 |
|
||
| React Query | 5+ | 服务端状态管理 |
|
||
| React Hook Form | latest | 表单管理 |
|
||
|
||
### 工具
|
||
|
||
| 技术 | 版本 | 用途 |
|
||
|-----|------|------|
|
||
| Vitest | latest | 测试框架 |
|
||
| Playwright | latest | E2E 测试 |
|
||
| ESLint | latest | 代码检查 |
|
||
| Prettier | latest | 代码格式化 |
|
||
|
||
---
|
||
|
||
## 后端技术栈
|
||
|
||
### 核心框架
|
||
|
||
| 技术 | 版本 | 用途 |
|
||
|-----|------|------|
|
||
| NestJS | 11+ | Node.js 企业级框架 |
|
||
| TypeScript | 5+ | 类型安全 |
|
||
| Prisma | 6+ | ORM |
|
||
|
||
### 数据库
|
||
|
||
| 技术 | 版本 | 用途 |
|
||
|-----|------|------|
|
||
| PostgreSQL | 15+ | 主数据库 |
|
||
| Redis | 7+ | 缓存和会话存储 |
|
||
|
||
### 认证与安全
|
||
|
||
| 技术 | 版本 | 用途 |
|
||
|-----|------|------|
|
||
| Passport.js | latest | 认证中间件 |
|
||
| JWT | latest | Token 认证 |
|
||
| bcrypt | latest | 密码加密 |
|
||
|
||
### 工具
|
||
|
||
| 技术 | 版本 | 用途 |
|
||
|-----|------|------|
|
||
| Jest | latest | 测试框架 |
|
||
| Swagger | latest | API 文档 |
|
||
| class-validator | latest | 数据验证 |
|
||
|
||
---
|
||
|
||
## 基础设施
|
||
|
||
### 容器化
|
||
|
||
| 技术 | 版本 | 用途 |
|
||
|-----|------|------|
|
||
| Docker | latest | 容器运行时 |
|
||
| Docker Compose | latest | 本地开发环境 |
|
||
| Kubernetes | latest | 容器编排 |
|
||
|
||
### CI/CD
|
||
|
||
| 技术 | 用途 |
|
||
|-----|------|
|
||
| GitHub Actions | CI/CD 流水线 |
|
||
| 阿里云效 | 国内 CI/CD 备选 |
|
||
|
||
### 云服务
|
||
|
||
| 服务 | 用途 |
|
||
|-----|------|
|
||
| 阿里云 OSS | 对象存储 |
|
||
| 阿里云 CDN | 内容分发 |
|
||
| 阿里云 RDS | 托管数据库 |
|
||
|
||
---
|
||
|
||
## 技术选型理由
|
||
|
||
### 为什么选择 Next.js?
|
||
|
||
1. **SSR/SSG 支持** - 提升 SEO 和首屏加载速度
|
||
2. **App Router** - 现代化的路由架构
|
||
3. **API Routes** - 前后端一体化开发
|
||
4. **生态成熟** - 国内生态支持良好
|
||
5. **类型安全** - 完整的 TypeScript 支持
|
||
|
||
### 为什么选择 NestJS?
|
||
|
||
1. **企业级框架** - 模块依赖注入、中间件、守卫
|
||
2. **TypeScript 优先** - 完整的类型支持
|
||
3. **模块化架构** - 易于扩展和维护
|
||
4. **生态丰富** - 丰富的插件和模块
|
||
|
||
### 为什么选择 Prisma?
|
||
|
||
1. **类型安全** - 自动生成类型定义
|
||
2. **直观的 Schema** - 简洁的 DSL 语法
|
||
3. **强大的迁移工具** - 数据库版本管理
|
||
4. **多数据库支持** - PostgreSQL, MySQL 等
|
||
|
||
### 为什么选择 Monorepo?
|
||
|
||
1. **代码共享** - 前后端共享类型和工具
|
||
2. **依赖管理** - 统一的依赖版本
|
||
3. **构建优化** - Turborepo 增量构建
|
||
4. **团队协作** - 统一的规范和流程
|
||
|
||
---
|
||
|
||
## 下一步
|
||
|
||
- [架构决策记录](./design-decisions/) - 查看 ADR
|
||
|
||
---
|
||
|
||
> **文档维护**: 本文档由开发团队维护,如有问题或建议请提交 Issue。
|
||
> **最后更新**: 2026-05-25
|