CLAUDE 的全球编码原则.md | AI生成和翻译
CLAUDE.md — 全局编码原则
代码质量
- 反复精炼代码——优秀的代码是通过重写得到的,而不是一次性写成
- 删除比保留的多;洞见随时间而来
代码结构
- 使用盒状嵌套和树状分支
- 每个
if 都应有 else ——显式处理所有情况
函数
- 保持函数在 ~40 行以内(一个屏幕)
- 每个函数只做一件事
- 自由使用小型辅助函数,即使是 2 行代码
- 通过参数/返回值传递数据——避免使用全局变量和类成员进行数据传递
可读性
- 代码应自解释;最小化注释需求
- 为函数和变量使用有意义的名称
- 保持局部变量简短且靠近其使用位置
- 不要重用局部变量——为新值声明新变量
- 将复杂逻辑/表达式提取到命名的辅助函数或中间变量中
简洁性
- 避免在简单
for 头部之外使用 i++/i-- ——使用显式的两步操作
- 始终为
if 体使用 {},即使是单行
- 使用括号澄清操作符优先级
- 避免在循环中使用
continue/break ——重构或提取到函数中
- 不要滥用
&&/|| 作为控制流——编写显式的 if/else
错误处理
- 绝不忽略返回值
- 捕获特定异常,而不是宽泛的
Exception
- 保持
try 块小——尽可能每个 try/catch 一个调用
- 在错误发生处处理错误
Null 安全性
- 优先使用异常而不是返回 null
- 绝不将 null 放入集合中
- 在接收点立即检查 null
- 使用
Objects.requireNonNull() 及早拒绝 null 输入
- 原子使用
Optional(检查 + 解包一起)
测试
- 在程序和算法稳定 之后 编写测试
- 只测试基本属性——不是实现细节
- 每个测试只覆盖一个方面
- 避免多层 mocks
- 在测试中避免字符串比较——使用结构化比较
- 不要为了满足测试覆盖率而修改干净代码
- 手动测试有价值——不要忽视它
要避免的反模式
- 为想象中的未来需求过度工程化
- 在代码工作之前痴迷于代码复用
- 测试驱动开发作为教条
- 过度测试脚手架使简单代码复杂化