Skills

Coding Standards

适用于 TypeScript、JavaScript、React 和 Node.js 开发的通用编码标准、最佳实践与模式。

Install

npx skills add xu-xiang/everything-claude-code-zh --skill coding-standards -g -a claude-code -y
Category
Engineering
Updated
8mo ago
License
MIT
Context cost
Mediumabout 2,337 tokens
Runs scripts
No, instructions only

What it does

适用于 TypeScript、JavaScript、React 和 Node.js 开发的通用编码标准、最佳实践与模式。

编码标准与最佳实践

适用于所有项目的通用编码标准。

何时激活

  • 开始新项目或模块时
  • 进行代码质量与可维护性审查时
  • 为了遵循约定而重构现有代码时
  • 强制执行命名、格式或结构的一致性时
  • 设置 Lint、格式化或类型检查规则时
  • 引导新贡献者了解编码约定时

代码质量原则

1. 可读性优先

  • 代码被阅读的次数远多于编写的次数
  • 变量和函数命名应清晰明确
  • 优先选择自描述代码而非注释
  • 保持一致的格式

2. KISS (Keep It Simple, Stupid - 保持简单)

  • 采用最简单的可行方案
  • 避免过度工程(Over-engineering)
  • 不要进行过早优化
  • 易于理解胜过奇技淫巧

3. DRY (Don't Repeat Yourself - 不要重复自己)

  • 将公共逻辑提取到函数中
  • 创建可复用的组件
  • 在模块间共享工具函数
  • 避免“复制粘贴式”编程

4. YAGNI (You Aren't Gonna Need It - 你不会需要它)

  • 不要在功能被需要之前就构建它
  • 避免投机性的通用设计
  • 仅在必要时增加复杂度
  • 从简单开始,在需要时重构

TypeScript/JavaScript 标准

变量命名

// ✅ 推荐:描述性名称
const marketSearchQuery = 'election'
const isUserAuthenticated = true
const totalRevenue = 1000

// ❌ 不推荐:命名不清晰
const q = 'election'
const flag = true
const x = 1000

函数命名

// ✅ 推荐:动词-名词模式
async function fetchMarketData(marketId: string) { }
function calculateSimilarity(a: number[], b: number[]) { }
function isValidEmail(email: string): boolean { }

// ❌ 不推荐:不清晰或仅用名词
async function market(id: string) { }
function similarity(a, b) { }
function email(e) { }

不可变模式 (Immutability Pattern)(至关重要)

// ✅ 始终使用展开运算符 (Spread Operator)
const updatedUser = {
  ...user,
  name: 'New Name'
}

const updatedArray = [...items, newItem]

// ❌ 严禁直接修改 (Mutate)
user.name = 'New Name'  // 错误
items.push(newItem)     // 错误

错误处理

// ✅ 推荐:全面的错误处理
async function fetchData(url: string) {
  try {
    const response = await fetch(url)

    if (!response.ok) {
      throw new Error(`HTTP ${response.status}: ${response.statusText}`)
    }

    return await response.json()
  } catch (error) {
    console.error('Fetch failed:', error)
    throw new Error('Failed to fetch data')
  }
}

// ❌ 不推荐:没有错误处理
async function fetchData(url) {
  const response = await fetch(url)
  return response.json()
}

Async/Await 最佳实践

Read the whole SKILL.md on GitHub

More in Engineering