# 编码风格 ## 不可变性(关键) 始终创建新对象,永远不要修改现有对象: ``` // 伪代码 错误: modify(original, field, value) → 就地修改 original 正确: update(original, field, value) → 返回带有更改的新副本 ``` 原理:不可变数据防止隐藏的副作用,使调试更容易,并启用安全的并发。 ## 文件组织 多个小文件 > 少量大文件: - 高内聚,低耦合 - 典型 200-400 行,最多 800 行 - 从大模块中提取工具函数 - 按功能/领域组织,而非按类型 ## 错误处理 始终全面处理错误: - 在每一层显式处理错误 - 在面向 UI 的代码中提供用户友好的错误消息 - 在服务器端记录详细的错误上下文 - 永远不要静默吞掉错误 ## 输入验证 始终在系统边界验证: - 处理前验证所有用户输入 - 在可用的情况下使用基于模式的验证 - 快速失败并给出清晰的错误消息 - 永远不要信任外部数据(API 响应、用户输入、文件内容) ## 代码质量检查清单 在标记工作完成前: - [ ] 代码可读且命名良好 - [ ] 函数很小(<50 行) - [ ] 文件聚焦(<800 行) - [ ] 没有深层嵌套(>4 层) - [ ] 正确的错误处理 - [ ] 没有硬编码值(使用常量或配置) - [ ] 没有变更(使用不可变模式)