Files
upage-git/docs/content/contributing/code-standards.md
2025-09-28 15:26:44 +08:00

157 lines
3.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
id: code-standards
title: 代码规范
---
# 代码规范
UPage 项目遵循严格的代码规范和最佳实践,以确保代码质量和一致性。本文档概述了这些规范,所有贡献者在提交代码前应确保遵循这些规范。
## JavaScript/TypeScript 规范
UPage 使用 [Biome](https://biomejs.dev/) 进行代码格式化和 linting。Biome 是一个快速的代码格式化工具和 linter可以帮助我们保持代码风格的一致性。
### 代码检查
在提交代码前,请确保您的代码符合项目的代码规范:
```bash
pnpm check
```
### 自动修复
您也可以使用以下命令自动修复格式问题:
```bash
pnpm check --write
```
### 主要规范
- **缩进**: 使用 2 个空格
- **分号**: 必须使用分号
- **引号**: 使用单引号
- **命名约定**:
- 变量和函数使用 camelCase
- 类和接口使用 PascalCase
- 常量使用 UPPER_SNAKE_CASE
- **类型注解**: 尽可能使用类型注解提高代码可读性和类型安全性
- **注释**: 对复杂逻辑和公共 API 添加适当的注释
## Git 提交规范
我们使用 [Conventional Commits](https://www.conventionalcommits.org/) 规范来格式化 Git 提交信息。提交信息应遵循以下格式:
```
<type>(<scope>): <description>
[optional body]
[optional footer(s)]
```
### 类型 (Type)
提交类型必须是以下之一:
- `feat`: 新功能
- `fix`: 修复 bug
- `docs`: 文档更新
- `style`: 代码风格更改(不影响代码功能)
- `refactor`: 代码重构(既不是新功能,也不是修复 bug
- `perf`: 性能优化
- `test`: 添加或修改测试
- `chore`: 构建过程或辅助工具的变动
- `ci`: CI 配置文件和脚本的更改
- `revert`: 回滚之前的提交
### 范围 (Scope)
范围是可选的,用于指定更改的范围(例如组件或文件名)。
### 描述 (Description)
描述是对更改的简短摘要:
- 使用现在时态("change",而不是"changed"或"changes"
- 不要首字母大写
- 不要以句号结尾
### 示例
```
feat(editor): 添加拖拽调整组件大小功能
添加了一个新的拖拽句柄,允许用户直接调整组件的大小。
同时优化了调整过程中的性能。
Closes #123
```
```
fix: 修复用户认证失败问题
修复了当用户凭证包含特殊字符时认证失败的问题。
Fixes #456
```
## CSS/SCSS 规范
UPage 使用 SCSS 和 CSS Modules 来组织样式代码。
### 命名约定
- 使用 kebab-case 命名 CSS 类和 ID
- 使用有意义的名称,避免过于简短或抽象的名称
- 使用 BEMBlock Element Modifier命名方法论
### 组织结构
- 将全局样式放在 `app/styles` 目录下
- 将组件特定样式放在组件同级目录下的 `.scss``.module.scss` 文件中
## 可访问性标准
UPage 致力于创建可访问的 Web 应用程序。所有贡献的代码应遵循 [WCAG 2.1 AA](https://www.w3.org/WAI/WCAG21/quickref/) 标准。
- 确保适当的颜色对比度
- 提供替代文本和 ARIA 标签
- 确保键盘导航功能
- 支持屏幕阅读器
## 测试规范
所有新功能和 bug 修复应包含适当的测试:
- **单元测试**: 测试单个函数和组件
- **集成测试**: 测试多个组件或功能的交互
- **端到端测试**: 测试完整的用户流程
测试应该:
- 覆盖正常和边缘情况
- 清晰描述测试的目的
- 保持独立性,不依赖于其他测试的状态
## 性能考虑
贡献的代码应考虑性能影响:
- 避免不必要的重新渲染
- 优化大型列表和表格
- 懒加载大型资源
- 减少网络请求
- 优化打包大小
## 安全最佳实践
所有代码应遵循安全最佳实践:
- 防止 XSS 攻击
- 避免 SQL 注入
- 正确处理用户输入
- 保护敏感数据
- 实施适当的访问控制