
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- Repository
- xu-xiang/everything-claude-code-zh2k
- 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()
}
