Forráskód Böngészése

📝 docs(architecture): add development workflow and project standards

- 添加12章"开发工作流",包含本地开发环境设置、环境配置和开发命令
- 添加13章"部署架构",定义部署策略、CI/CD流水线和环境配置
- 添加14章"安全和性能",规定安全要求和性能优化目标
- 添加15章"测试策略",定义测试金字塔和测试组织方式
- 添加16章"编码标准",规定全栈开发规则和命名约定
yourname 2 hónapja
szülő
commit
e93a1dbd14
1 módosított fájl, 304 hozzáadás és 1 törlés
  1. 304 1
      docs/architecture.md

+ 304 - 1
docs/architecture.md

@@ -922,4 +922,307 @@ shadcn-admin-template/
     "dev:api": "turbo run dev --filter=api"
   }
 }
-```
+```
+
+## 12. Development Workflow
+
+定义全栈应用程序的开发设置和工作流:
+
+### 12.1 Local Development Setup
+
+#### Prerequisites
+```bash
+# 检查Node.js版本
+node --version  # 需要 >= 20.18.3
+
+# 检查Docker和Docker Compose
+docker --version
+docker-compose --version
+
+# 检查MySQL和Redis客户端
+mysql --version
+redis-cli --version
+```
+
+#### Initial Setup
+```bash
+# 克隆项目
+git clone <repository-url>
+cd shadcn-admin-template
+
+# 安装依赖
+npm install
+
+# 复制环境变量文件
+cp .env.example .env
+
+# 启动开发环境
+npm run dev
+
+# 或者启动特定服务
+npm run dev:admin    # 只启动管理后台
+npm run dev:api      # 只启动API服务
+```
+
+#### Development Commands
+```bash
+# 启动所有服务
+npm run dev
+
+# 启动前端开发服务器(管理后台)
+cd apps/admin && npm run dev
+
+# 启动后端开发服务器
+cd apps/api && npm run dev
+
+# 运行测试
+npm run test
+
+# 运行类型检查
+npm run type-check
+
+# 运行代码检查
+npm run lint
+```
+
+### 12.2 Environment Configuration
+
+#### Required Environment Variables
+```bash
+# 前端 (.env.local)
+VITE_API_URL=http://localhost:8080
+VITE_APP_NAME=shadcn管理后台
+
+# 后端 (.env)
+NODE_ENV=development
+PORT=8080
+JWT_SECRET=your-super-secret-jwt-key
+JWT_EXPIRES_IN=7d
+
+# 数据库连接
+DB_HOST=localhost
+DB_PORT=3306
+DB_USERNAME=root
+DB_PASSWORD=your-mysql-password
+DB_DATABASE=d8dai
+
+# Redis连接
+REDIS_HOST=localhost
+REDIS_PORT=6379
+REDIS_PASSWORD=
+
+# MinIO连接
+MINIO_ENDPOINT=localhost
+MINIO_PORT=9000
+MINIO_ACCESS_KEY=minioadmin
+MINIO_SECRET_KEY=minioadmin
+MINIO_BUCKET=uploads
+
+# 共享环境变量
+APP_NAME=shadcn-admin-template
+LOG_LEVEL=info
+```
+
+#### 开发环境快速启动脚本
+```bash
+#!/bin/bash
+# scripts/start-dev.sh
+
+echo "启动开发环境..."
+
+# 启动Docker服务
+docker-compose up -d
+
+# 等待数据库就绪
+echo "等待数据库就绪..."
+sleep 10
+
+# 运行数据库迁移
+cd apps/api && npx typeorm migration:run
+
+# 启动开发服务器
+cd ../.. && npm run dev
+```
+
+## 13. Deployment Architecture
+
+基于平台选择定义部署策略:
+
+### 13.1 部署策略
+
+**前端部署:**
+- **平台:** 多八多云端容器环境(8080端口)
+- **构建命令:** `npm run build`
+- **输出目录:** `dist/`
+- **CDN/边缘:** 容器内Nginx反向代理
+
+**后端部署:**
+- **平台:** 多八多云端容器环境(8080端口)
+- **构建命令:** `npm run build`
+- **部署方式:** Node.js进程管理(PM2)
+
+### 13.2 CI/CD流水线
+
+```yaml
+# .github/workflows/ci.yaml
+name: CI Pipeline
+
+on:
+  push:
+    branches: [main, develop]
+  pull_request:
+    branches: [main]
+
+jobs:
+  test:
+    runs-on: ubuntu-latest
+    steps:
+      - uses: actions/checkout@v4
+
+      - name: Setup Node.js
+        uses: actions/setup-node@v3
+        with:
+          node-version: '20'
+          cache: 'npm'
+
+      - name: Install dependencies
+        run: npm ci
+
+      - name: Run type check
+        run: npm run type-check
+
+      - name: Run linting
+        run: npm run lint
+
+      - name: Run tests
+        run: npm run test
+
+  build:
+    runs-on: ubuntu-latest
+    needs: test
+    steps:
+      - uses: actions/checkout@v4
+
+      - name: Setup Node.js
+        uses: actions/setup-node@v3
+        with:
+          node-version: '20'
+          cache: 'npm'
+
+      - name: Install dependencies
+        run: npm ci
+
+      - name: Build applications
+        run: npm run build
+
+      - name: Upload artifacts
+        uses: actions/upload-artifact@v3
+        with:
+          name: build-artifacts
+          path: |
+            apps/admin/dist
+            apps/api/dist
+```
+
+### 13.3 环境配置
+
+| 环境 | 前端URL | 后端URL | 用途 |
+|------|---------|---------|------|
+| 开发 | http://localhost:3000 | http://localhost:8080 | 本地开发 |
+| 测试 | http://test.example.com | http://api.test.example.com | 预生产测试 |
+| 生产 | http://app.example.com | http://api.example.com | 生产环境 |
+
+## 14. Security and Performance
+
+定义全栈应用程序的安全和性能考虑:
+
+### 14.1 安全要求
+
+**前端安全:**
+- **CSP头:** `default-src 'self'; script-src 'self' 'unsafe-inline'`
+- **XSS防护:** 输入验证和输出编码
+- **安全存储:** HTTP-only cookies存储敏感信息
+
+**后端安全:**
+- **输入验证:** Zod schema验证所有输入
+- **速率限制:** 每分钟100次请求限制
+- **CORS策略:** 仅允许信任的域名
+
+**认证安全:**
+- **令牌存储:** HTTP-only cookies + secure标志
+- **会话管理:** JWT短期令牌 + Redis刷新令牌
+- **密码策略:** 最小长度8位,包含数字和特殊字符
+
+### 14.2 性能优化
+
+**前端性能:**
+- **包大小目标:** < 500KB gzipped
+- **加载策略:** 代码分割和懒加载
+- **缓存策略:** Service Worker缓存静态资源
+
+**后端性能:**
+- **响应时间目标:** < 100ms P95
+- **数据库优化:** 索引优化和查询缓存
+- **缓存策略:** Redis缓存频繁访问数据
+
+## 15. Testing Strategy
+
+定义全栈应用程序的全面测试方法:
+
+### 15.1 测试金字塔
+
+```
+        E2E Tests
+       /          \\
+Integration Tests
+     /                \\
+Frontend Unit  Backend Unit
+```
+
+### 15.2 测试组织
+
+**前端测试:**
+```
+apps/admin/tests/
+├── unit/          # 单元测试
+├── components/    # 组件测试
+├── hooks/         # Hook测试
+└── __mocks__/     # 测试mock
+```
+
+**后端测试:**
+```
+apps/api/tests/
+├── unit/          # 单元测试
+├── integration/   # 集成测试
+└── __mocks__/     # 测试mock
+```
+
+**E2E测试:**
+```
+tests/e2e/
+├── auth/          # 认证流程测试
+├── users/         # 用户管理测试
+└── support/       # 测试支持
+```
+
+## 16. Coding Standards
+
+为AI代理定义最小但关键的标准。专注于防止常见错误的项目特定规则。这些将被开发代理使用。
+
+### 16.1 关键全栈规则
+
+**类型共享:** 始终在packages/shared中定义类型并从那里导入
+**API调用:** 永远不要直接进行HTTP调用 - 使用服务层
+**环境变量:** 仅通过配置对象访问,永远不要直接使用process.env
+**错误处理:** 所有API路由必须使用标准错误处理程序
+**状态更新:** 永远不要直接改变状态 - 使用适当的状态管理模式
+
+### 16.2 命名约定
+
+| 元素 | 前端 | 后端 | 示例 |
+|------|------|------|------|
+| 组件 | PascalCase | - | `UserProfile.tsx` |
+| Hooks | camelCase带'use' | - | `useAuth.ts` |
+| API路由 | - | kebab-case | `/api/user-profile` |
+| 数据库表 | - | snake_case | `user_profiles` |