---
title: "编码风格"
description: "始终创建新对象，绝不改变现有对象："
type: skill
canonical_url: https://claudary.paisolsolutions.com/skills/coding-style-9
source: "Claudary"
difficulty: intermediate
author: "Claude Code Knowledge Pack"
date: 2026-07-10T11:14:15.856Z
license: CC-BY-4.0
attribution: "编码风格 — Claudary (https://claudary.paisolsolutions.com/skills/coding-style-9)"
---

# 编码风格
始终创建新对象，绝不改变现有对象：

## Overview

# 编码风格

## 不可变性（关键）

始终创建新对象，绝不改变现有对象：

```
// 伪代码
WRONG:  modify(original, field, value) → 原地修改 original
CORRECT: update(original, field, value) → 返回包含更改的新副本
```

理由：不可变数据可以防止隐藏的副作用，使调试更容易，并支持安全的并发。

## 文件组织

多个小文件 > 少数大文件：

* 高内聚，低耦合
* 通常 200-400 行，最多 800 行
* 从大型模块中提取实用工具
* 按功能/领域组织，而不是按类型组织

## 错误处理

始终全面处理错误：

* 在每个层级明确处理错误
* 在面向用户的代码中提供用户友好的错误消息
* 在服务器端记录详细的错误上下文
* 绝不默默地忽略错误

## 输入验证

始终在系统边界处进行验证：

* 在处理前验证所有用户输入
* 在可用时使用基于模式的验证
* 快速失败并提供清晰的错误消息
* 绝不信任外部数据（API 响应、用户输入、文件内容）

## 代码质量检查清单

在标记工作完成之前：

* \\[ ] 代码可读且命名良好
* \\[ ] 函数短小（<50 行）
* \\[ ] 文件专注（<800 行）
* \\[ ] 没有深度嵌套（>4 层）
* \\[ ] 正确的错误处理
* \\[ ] 没有硬编码的值（使用常量或配置）
* \\[ ] 没有突变（使用不可变模式）

---

Source: [Claudary](https://claudary.paisolsolutions.com/skills/coding-style-9) · https://claudary.paisolsolutions.com
