💻 源码
# 02 · 代码标准

> **目标**:让人和 AI 写出的代码风格一致、可读、可测、可维护。CI 会自动检查其中可机检的部分。

---

## 1. 格式与静态检查

- Python 项目推荐:`ruff format .` + `ruff check .`。
- 其他语言按项目技术栈替换为对应工具,例如 ESLint/Prettier、Checkstyle、gofmt。
- 行宽默认 100;缩进、import 分组、命名风格由工具强制。
- 提交前本地必须通过格式与 lint;CI 会再卡一道。

## 2. 命名

| 对象 | 推荐规则 | 示例 |
|---|---|---|
| 变量/函数 | `snake_case` | `load_config` |
| 类 | `PascalCase` | `UserService` |
| 常量 | `UPPER_SNAKE` | `DEFAULT_PORT` |
| 私有实现 | 前缀 `_` | `_parse_row` |

命名必须表达意图。禁止 `process2`、`new_func`、`tmp_final` 这类无法审查的名字。

## 3. 函数与模块

- 一个函数只做一件事;超过约 40 行优先拆分。
- 参数过多时使用配置对象/数据类。
- 业务逻辑与 I/O 分离,核心逻辑优先写成纯函数,方便测试。
- 新增目录或模块前,先确认能落进 `00-project-context.md` 的目录地图。

## 4. 注释

- 不写废话注释,例如 `# 调用函数` 配 `call_func()`。
- 注释只解释“为什么”和“权衡”,不重复“代码做了什么”。
- 复杂业务规则、部署坑、兼容性原因必须写清楚。

## 5. 配置与密钥

- 非敏感配置可进 Git,例如 `config.yaml`、`.env.example`。
- 密钥、密码、Token、私钥绝不进 Git,只放 GitHub Secrets / 环境变量。
- 代码读取密钥时使用环境变量,并在 README 写清变量名,不写真实值。

## 6. 错误处理

- 禁止裸 `except: pass`。
- 外部输入必须校验,错误信息要能帮助定位。
- 部署脚本必须失败即停;不能让前一步失败后继续执行后续危险动作。

## 7. 提交前自检

```text
[ ] 格式检查通过
[ ] 静态检查通过
[ ] 新增逻辑有测试
[ ] 没有硬编码密钥
[ ] 没有调试 print / 死代码 / 大段注释代码
[ ] 目录结构仍符合 00-project-context.md
```