From dc0971215a984225feb791149c93e221ac7f123f Mon Sep 17 00:00:00 2001 From: FNS Service Date: Mon, 4 May 2026 14:08:40 +0800 Subject: [PATCH] Update from Sync Service --- wiki/AI工程/ClaudeCode软件开发最佳实践.md | 101 ++++++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100755 wiki/AI工程/ClaudeCode软件开发最佳实践.md diff --git a/wiki/AI工程/ClaudeCode软件开发最佳实践.md b/wiki/AI工程/ClaudeCode软件开发最佳实践.md new file mode 100755 index 0000000..3d1bf4e --- /dev/null +++ b/wiki/AI工程/ClaudeCode软件开发最佳实践.md @@ -0,0 +1,101 @@ +# CLAUDE.md — 软件开发最佳实践 + +> 本文件指导 Claude Code 在此项目中的行为。 +> 创建日期:2026-05-04 + +## 核心原则 + +- **先理解,再动手** — 修改前先阅读相关文件,理解上下文 +- **最小改动** — 只改必要的,不要动无关代码 +- **保持风格一致** — 遵循项目现有代码风格 +- **原子化提交** — 每次提交只做一件事 + +## 开发流程 + +### 每次修改后必须执行 + +```bash +git add -A && git commit -m "[AI] 简短描述做了什么" +``` + +提交信息格式:`[AI] 动词+名词`,例如: +- `[AI] 添加用户登录接口` +- `[AI] 修复分页参数越界` +- `[AI] 重构订单计算逻辑` + +### 开发步骤 + +1. **需求确认** — 不清楚时先问,不要假设 +2. **方案设计** — 大改动先写方案(`docs/` 目录下) +3. **小步实现** — 分步实现,每步可编译、可测试 +4. **自动提交** — 每步完成后自动 git commit +5. **自检** — 运行 lint/test,确认无报错 + +## 代码规范 + +### 通用 +- 变量/函数名用英文,语义清晰 +- 函数不超过 50 行,超过考虑拆分 +- 禁止魔法数字,用常量代替 +- 错误处理必须覆盖,不要吞异常 + +### TypeScript / JavaScript +- 优先 `const`,需要改再用 `let`,不用 `var` +- 使用 async/await,不用回调地狱 +- 接口定义在前,实现在后 +- 使用 ESLint + Prettier,提交前自动格式化 + +### Python +- 遵循 PEP 8 +- 类型注解必须(`def func(x: int) -> str:`) +- 使用 pyproject.toml 管理依赖 + +### Node.js +- 错误优先回调或 Promise,统一用 async/await +- 环境变量用 `.env`,不硬编码 +- 日志用结构化格式(JSON) + +## 测试 + +- 新功能必须写测试 +- 修改后运行相关测试确认通过 +- 测试命名:`describe('xxx', () => { it('should xxx', () => {}) })` +- 覆盖率不低于 80% + +## Git 规范 + +- **分支命名**:`feat/xxx`、`fix/xxx`、`refactor/xxx` +- **提交前检查**: + ```bash + git diff --staged --name-only # 确认变更范围 + ``` +- **不要 force push** 除非明确要求 +- **冲突处理**:保留双方代码 + 注释说明,让用户决定 + +## 文档 + +- 公共 API 必须有 JSDoc / docstring +- 复杂逻辑写注释解释 **为什么**,不是 **做了什么** +- 重大变更更新 `CHANGELOG.md` +- README 保持更新 + +## 安全 + +- **绝不提交密钥、Token、密码** +- 敏感信息用环境变量或密钥管理工具 +- SQL 参数化,防注入 +- 用户输入必须校验和转义 + +## 性能 + +- 数据库查询用索引,避免 N+1 +- 大列表操作考虑分页或流式 +- 缓存热点数据,设置合理过期时间 +- 不要阻塞主线程 + +## 与 Claude Code 交互 + +- 完成任务后简洁汇报:做了什么 + 关键变更 + 需要关注的点 +- 遇到不确定的事情直接说,不要编造答案 +- 大文件修改前确认用户意图 +- 遇到编译/测试失败主动排查原因