命名方式

144 阅读2分钟

在编程和软件开发中,常见的命名方式(Naming Conventions)主要有以下 5 种主流风格,每种适用于不同场景:


✅ 1. PascalCase(大驼峰)

  • 格式:每个单词首字母大写,无分隔符
  • 别名:Upper Camel Case
  • 用途
    • 类名(class UserService
    • 接口(interface UserResponse
    • React/Vue 组件名(function UserProfile()
    • 枚举、类型别名等 类型级标识符
  • 示例
    UserProfile, ApiService, HttpRequest

✅ 2. camelCase(小驼峰)

  • 格式:首单词小写,后续单词首字母大写
  • 别名:Lower Camel Case
  • 用途
    • 变量名(let userName
    • 函数/方法名(function getUserInfo()
    • 对象属性(user.isActive
  • 示例
    firstName, calculateTotal, isLoading

✅ 3. snake_case(蛇形命名)

  • 格式:全小写,单词用下划线 _ 分隔
  • 用途
    • Python、Ruby 等语言的变量/函数名
    • 数据库字段名(user_id, created_at
    • 环境变量(DATABASE_URL
    • 常量(有时用全大写版)
  • 示例
    user_name, api_key, max_retries

🔹 SCREAMING_SNAKE_CASE(全大写蛇形):用于常量
例如:MAX_CONNECTIONS, DEFAULT_TIMEOUT


✅ 4. kebab-case(短横线命名)

  • 格式:全小写,单词用短横线 - 分隔
  • 别名:Lisp Case, Spinal Case
  • 用途
    • 文件名user-profile.tsx, api-service.ts
    • URL 路径(/user-settings
    • HTML/CSS 类名或 ID(<div class="main-header">
    • 命令行工具参数(--file-name
  • 注意不能用于 JavaScript/TypeScript 变量名(因 - 是减号运算符)
  • 示例
    login-form.css, my-component.vue, https://api.com/v1/user-info

✅ 5. Hungarian Notation(匈牙利命名法) ⚠️(已不推荐)

  • 格式:前缀表示类型,如 strName, iCount, bVisible
  • 现状:早期 C/Windows 开发常用,现代语言(TS/JS/Python)已弃用
  • 问题:类型信息冗余(TS 有类型系统),降低可读性

📊 快速对比表

命名方式示例主要使用场景
PascalCaseUserProfile类、接口、组件名(TypeScript/Java/C#)
camelCaseuserName变量、函数、属性(JavaScript/TS/Java)
snake_caseuser_namePython/Ruby 变量、数据库字段、常量
kebab-caseuser-profile.tsx文件名、URL、CSS 类名
SCREAMING_SNAKEMAX_SIZE常量(C/C++/Python/环境变量)

💡 实际应用建议(以 TypeScript 项目为例)

// types.ts
interface UserAccount {        // PascalCase → 类型
  userId: string;              // camelCase → 属性
  created_at: string;          // snake_case → 若对接数据库字段
}

// user-service.ts             // kebab-case → 文件名
export function fetchUserData() { // camelCase → 函数
  // ...
}

// constants.ts
export const MAX_RETRY_COUNT = 3; // SCREAMING_SNAKE_CASE → 常量

❌ 常见错误

  • 在 JS/TS 中用 kebab-case 做变量名:
    let user-name = "Alice"; // ❌ 语法错误!会被解析为 user 减 name
    
  • 混淆文件名和标识符命名:
    文件叫 UserProfile.tsx(不推荐),但组件名必须是 UserProfile(正确)

总结

编程命名的核心原则:统一 + 场景适配

  • 类型用 PascalCase
  • 值用 camelCase
  • 文件/URL 用 kebab-case
  • 数据库/配置用 snake_case

遵循这些规范,你的代码将更专业、更易维护,并与主流生态保持一致。