Skip to content

命名规范

核心原则

命名必须清晰表达意图,避免使用缩写和模糊的单词。好的命名让代码自文档化。

允许的做法

变量命名

  • 使用 camelCase(小驼峰)命名普通变量
  • 使用 描述性名称,说明变量的用途
  • 使用 复数形式表示集合或数组
typescript
// ✅ 正确
const userName = 'Alice';
const productList = [];
const isActive = true;

函数/方法命名

  • 使用 camelCase(小驼峰)命名函数
  • 使用 动词开头,说明函数的操作
  • 遵循 get/set/is/has/can 等前缀约定
typescript
// ✅ 正确
function getUserById(id: number) {}
function calculateTotalPrice() {}
function isValidEmail(email: string) {}

类/组件命名

  • 使用 PascalCase(大驼峰)命名类和组件
  • 使用 名词或名词短语
typescript
// ✅ 正确
class UserService {}
class ProductRepository {}
function ProductCard() {}  // React 组件

常量命名

  • 使用 UPPER_SNAKE_CASE 命名全局常量
  • 使用 camelCase 命名局部常量
typescript
// ✅ 正确
const MAX_RETRY_COUNT = 3;      // 全局常量
const apiBaseUrl = '/api/v1';   // 局部常量

文件命名

  • 使用 kebab-case(短横线)命名普通文件
  • 使用 PascalCase 命名组件文件(React/Vue)
✅ 正确
user-service.ts
product-list.tsx
ProductCard.tsx       // React 组件

禁止的做法

  • 禁止 使用单字母变量(除循环计数器 i, j, k)
  • 禁止 使用无意义的名称(如 data, temp, foo)
  • 禁止 使用拼音或中英文混合
  • 避免 使用过长的名称(超过 30 个字符)
  • 避免 使用缩写(除非是通用缩写如 id, url, html)
typescript
// ❌ 错误
const d = new Date();           // 太短
const userData123 = {};         // 无意义数字
const yonghuMingcheng = '';     // 拼音
const userInformationDataObject = {};  // 过长

特殊规则

布尔值命名

  • 使用 is/has/can/should 前缀
  • 表达 肯定含义
typescript
// ✅ 正确
const isActive = true;
const hasPermission = false;
const canEdit = true;

// ❌ 错误
const active = true;            // 缺少前缀
const notActive = false;        // 否定含义

TypeScript 接口/类型

  • 使用 PascalCase 命名接口和类型
  • 避免 I 前缀(不推荐 IUser)
typescript
// ✅ 正确
interface User {
  id: number;
  name: string;
}

type ProductStatus = 'active' | 'inactive';

Go 语言特殊规则

包命名

  • 使用 小写单数形式
  • 避免 下划线和驼峰
go
// ✅ 正确
package handler
package service
package model

// ❌ 错误
package handlers      // 不使用复数
package myService     // 不使用驼峰
package my_package    // 不使用下划线

结构体和方法

  • 使用 PascalCase 导出的标识符
  • 使用 camelCase 未导出的标识符
  • 使用 简短名称作为接收者(1-2 个字母)
go
// ✅ 正确:导出
type UserService struct {}
func (u *UserService) GetUser(id int64) {}

// ✅ 正确:未导出
type userCache struct {}
func (c *userCache) get(id int64) {}

常量命名

  • 使用 PascalCase 或 UPPER_SNAKE_CASE
go
// ✅ 正确 - PascalCase
const DefaultPageSize = 20
const MaxUploadSize = 10 * 1024 * 1024

// ✅ 正确 - UPPER_SNAKE_CASE(枚举值)
const (
    STATUS_PENDING     = "pending"
    STATUS_IN_PROGRESS = "in_progress"
    STATUS_COMPLETED   = "completed"
)

相关文档