Files
2026-04-11 20:46:55 +08:00

187 lines
4.5 KiB
Markdown
Raw Permalink 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.
# 注释写作风格指南
本指南规范注释的写作风格和语言规范,确保注释专业且一致。
## 目录
- [语气标准](#语气标准)
- [语言与语法规范](#语言与语法规范)
- [示例改进](#示例改进)
---
## 语气标准
### 视角与时态
- **称呼**:以"您"称呼读者
- **语态**:使用主动语态
- **时态**:使用现在时(例如"函数返回..."而非"函数将返回..."
### 语气要求
- **专业**:避免口语化和非正式表达
- **友好**:保持帮助性的语气,但不冗长
- **直接**:开门见山,避免绕圈子
### 清晰度要求
- **词汇**:使用简单词汇,避免过度使用专业术语
- **俚语**:避免俚语和口语表达
- **营销用语**:避免宣传性和夸张性语言
### 要求层级
明确区分不同层级的指令:
| 层级 | 用词 | 说明 |
| -------- | ------------------ | ------------------------------ |
| 强制要求 | **必须**、**严禁** | 必须遵守的规则,违反会导致错误 |
| 强烈建议 | **推荐**、**建议** | 推荐的最佳实践 |
| 可选建议 | **可以**、**考虑** | 可根据情况选择的建议 |
**避免使用**"应当"、"宜"等模糊表述。
### 措辞选择
| 避免 | 推荐 |
| -------- | -------- |
| 请 | (省略) |
| 允许你 | 可以 |
| 允许您 | 您可以 |
| 函数认为 | 函数检查 |
| 数组包含 | 数组有 |
**可以使用缩写**:不要、它是、它有、它会等。
---
## 语言与语法规范
### 缩写使用
| 避免 | 推荐 |
| ------ | --------- |
| e.g. | 例如 |
| i.e. | 即 |
| etc. | 等 |
| vs. | 与...对比 |
| et al. | 等人 |
### 标点符号
- **序列逗号**:在列表中使用逗号分隔(如"a、b、c"
- **中文引号**:使用 `""` 而非 `""`
- **英文引号**:使用 `""` 而非 ''
### 日期格式
使用明确格式,例如:
- ✅ "2026年1月22日"
- ✅ "January 22, 2026"
- ❌ "2026/1/22"
- ❌ "1/22/26"
### 简洁性
| 避免 | 推荐 |
| ---------------- | ---- |
| 允许你/您 | 可以 |
| 让我们来看 | 看 |
| 接下来我们将 | 我们 |
| 这个函数的作用是 | 函数 |
### 动词选择
使用精确、具体的动词:
| 模糊动词 | 精确动词 |
| -------- | ---------------------- |
| 处理 | 解析、转换、计算、验证 |
| 获取 | 读取、拉取、提取、请求 |
| 设置 | 配置、赋值、初始化 |
---
## 示例改进
### 改进前(不推荐)
```typescript
/**
* 这个函数可以帮助我们对用户输入的数据进行处理。
* 它会返回一个处理后的结果。
*
* @param input - 输入的数据
* @returns 返回处理后的结果
*/
function processData(input: any) {}
/**
* 这个类是用来管理用户的。
* 它可以帮助我们进行用户认证。
*/
class UserManager {}
```
### 改进后(推荐)
```typescript
/**
* Processes user input data.
*
* 处理用户输入数据。
*
* @param input - User input data to process / 要处理的用户输入数据
* @returns Processed result / 处理后的结果
*/
function processData(input: Data): Result {}
/**
* Manages user authentication and session handling.
*
* 管理用户认证和会话处理。
*
* @example
* const manager = new UserManager();
* const session = await manager.login('user@example.com', 'password');
*/
class UserManager {}
```
### 关键改进点
1. **直接描述功能**:开头直接说明函数/类的功能,而非"这个函数是..."
2. **使用动词开头**:函数描述以动词开头(如 Process、Calculate、Validate
3. **避免冗余**:删除"可以帮助我们"、"这个"等冗余表述
4. **保持简洁**:每行控制在合理长度内
---
## 注释原则
### 不要过度注释
注释是为了增强可读性,而非为注释而注释。过多注释反而会影响代码可读性。
**添加注释前,先问自己**
1. 不看注释,能否快速理解这段代码的意图?
2. 代码命名是否足够清晰?
3. 注释是否提供了代码本身无法表达的信息?
如果以上问题的答案表明代码已足够清晰,则不需要添加注释。
### 简洁明了
- 避免冗余注释
- 注释应有实际价值
- 提供代码本身无法表达的信息
### 示例要求
- 所有使用示例必须是可以实际运行的代码
- 示例中使用有意义的名称
- 避免使用"foo"、"bar"等无意义占位符