编码标准(Coding Standards)

入门 Starter 参考型 Reference ⚡ Claude Code 专属 ⚡ Claude Code Optimized
4 min read · 208 lines

跨语言通用编码规范,强调不可变性与全面错误处理

来源: everything-claude-code by Affaan Mustafa 原始文件: rules/common/coding-style.md + rules/typescript/coding-style.md + rules/python/coding-style.md + rules/golang/coding-style.md

编码标准(Coding Standards)

概述

一套跨语言的通用编码风格规则,强调不可变性(Immutability)、小文件组织、全面的错误处理和输入验证。同时包含 TypeScript/JavaScript、Python 和 Go 三种语言的特定补充规范。

二、TypeScript/JavaScript 编码风格

此部分扩展了通用编码风格,包含 TypeScript/JavaScript 特定内容。

适用文件

**/*.ts**/*.tsx**/*.js**/*.jsx

不可变性

使用展开运算符(Spread operator)进行不可变更新:

// 错误:可变操作
function updateUser(user, name) {
  user.name = name  // 可变操作!
  return user
}

// 正确:不可变操作
function updateUser(user, name) {
  return {
    ...user,
    name
  }
}

错误处理

使用 async/await 配合 try-catch:

try {
  const result = await riskyOperation()
  return result
} catch (error) {
  console.error('操作失败:', error)
  throw new Error('详细的用户友好消息')
}

输入验证

使用 Zod 进行基于 Schema 的验证:

import { z } from 'zod'

const schema = z.object({
  email: z.string().email(),
  age: z.number().int().min(0).max(150)
})

const validated = schema.parse(input)

console.log 规则

  • 生产代码中禁止 console.log 语句
  • 使用专业的日志库替代
  • 参见 hooks 进行自动检测

三、Python 编码风格

此部分扩展了通用编码风格,包含 Python 特定内容。

适用文件

**/*.py**/*.pyi

标准

  • 遵循 PEP 8 约定
  • 所有函数签名使用类型注解(Type annotations)

不可变性

优先使用不可变数据结构:

from dataclasses import dataclass

@dataclass(frozen=True)
class User:
    name: str
    email: str

from typing import NamedTuple

class Point(NamedTuple):
    x: float
    y: float

格式化工具

  • black 用于代码格式化
  • isort 用于导入排序
  • ruff 用于代码检查(Linting)

四、Go 编码风格

此部分扩展了通用编码风格,包含 Go 特定内容。

适用文件

**/*.go**/go.mod**/go.sum

格式化

  • gofmtgoimports 是强制性的 -- 无需风格争论

设计原则

  • 接受接口(Interface),返回结构体(Struct)
  • 保持接口精简(1-3 个方法)

错误处理

始终使用上下文包装错误:

if err != nil {
    return fmt.Errorf("failed to create user: %w", err)
}

五、总结

原则 要求
不可变性 始终创建新对象,不修改已有对象
文件大小 典型 200-400 行,最大 800 行
函数大小 不超过 50 行
嵌套深度 不超过 4 层
错误处理 每一层显式处理,绝不静默吞掉
输入验证 在系统边界处始终验证
硬编码值 使用常量或配置替代

相关技能 Related Skills